-A
中的gcc
选项有什么作用?我正在使用arm-none-linux-gnueabi-gcc
。
下面是我的生成文件中的规则。
$(SH_OBJ): $(OBJS)
$(CC) $(LFLAGS) -o $@-debug -A $@-debug $^ $(LIBPATH) $(LDLIBS)
答案 0 :(得分:0)
我建议查找它,由于这是我从未见过的选择,所以我遵循了自己的建议。 -A
是传递给预处理器的选项:
-谓词= answer
使用谓词断言并回答答案。此格式优于旧格式-A谓词(answer),该格式仍受支持,因为它不使用shell特殊字符。请参阅过时的功能。
-A -predicate = answer
使用谓词取消断言并回答答案。
(但是,makefile中的参数为$@-debug
,它缺少=
来拆分谓词和答案部分。很奇怪。)
还有documentation on assertions:
在编写条件语句以测试编译程序将在哪种计算机或系统上运行时,断言是宏的不建议使用的替代方法。断言通常是预定义的,但是您可以使用预处理指令或命令行选项来定义它们。
断言旨在提供一种更系统的方式来描述编译器的目标系统,我们添加它们的目的是为了与现有编译器兼容。实际上,它们与系统特定的预定义宏一样不可预测。此外,它们不是任何标准的一部分,只有少数编译器支持它们。因此,断言的使用比系统特定的预定义宏的移植性差。我们建议您完全不要使用它们。
我猜这是一个非常老的项目的文件吗?