链接到lib的源代码的编译器定义会改变lib吗?

时间:2011-02-16 19:58:24

标签: libs

我有源文件中有targetlibs = Lib.lib的文件A.cpp。 Lib.cpp是使用C_defines = -DSomething编译的,但A.cpp是使用C_defines = -DOther编译的。 Lib.pp包含#ifdefs用于-DSomething和-DOther。

在这种情况下会发生什么?是-DSomething保留或替换为-DOther?是 - 被忽略了吗?或两者都保存? 感谢

1 个答案:

答案 0 :(得分:1)

定义在编译时有效,所以-DSomething保留用于库代码,-DOther用于程序代码。要小心,如果A.cpp中包含Lib的头文件,例如Lib.h,-DOther也用于头代码,因为它与A.cpp在同一个编译单元中。