- 论坛徽章:
- 0
|
手上暂时没有环境实验.
所以, 只能略微地分析下.
这行代码是一个规则:- make -C dir/test1 CFLAGS="$(CFLAGS)"
复制代码 是一个规则, 意味着, make会新起一个进程, 调用makefile中预定义的shell(maybe bash)来解析这个规则.
问题在于, "$(CFLAGS)"在送给shell解析前, make会先将$(CFLAGS)展开:
...... -DBUILD_DATE=“\"$(shell date)\"" -> $(shell xxx)再展开-> ...... -DBUILD_DATE=“\"xxx: xxx: xxx\""
那么传给shell整个规则是:
make -C dir/test1 CFLAGS=" ...... -DBUILD_DATE=“\"xxx: xxx: xxx\"" "
我首先就不敢保证" "\" xxx: xxx: xxx\"" " 有没有问题(多少个soft quote, 数数...)
所以我认为, 也许LZ可以试试
make -C dir/test1 CFLAGS=‘$(CFLAGS)’
即将最外层的soft quote改成hard quote.
当然. 上面的只是一个一般的分析. 我还不敢保证的是, make是不是一定会先将其$(CFLAGS)展开. 我手上没有环境. LZ可否试试, 如若可行请告知, 若有更好的解决办法亦请告知, 我学习下.
|
|