您可以使用静态库中定义的宏吗?
我有一个名为TWDEBUG
的调试宏,可在为共享创建的静态库中使用。
如果我将静态库导入到新项目中并使用它,则编译器似乎无法识别它。我确实将预处理程序宏设置为TWDEBUG
和Other C flags
,将Other C++ flags
设置为-TWDEBUG
,但是当我运行代码时,ifdef
宏不会执行。
最佳答案
宏在编译时评估。因此,在构建静态库时,它们的值将被冻结。对于调试语句,这通常意味着将它们省略,而不是已构建库的一部分。
如果以后将静态库添加到项目中,则可以更改宏的值。但这对静态库没有任何影响,因为它不再编译。调试语句丢失。
更新:
因此,要实现调试选项,我看到两个选项:
关于ios - 启用静态库中使用的ifdef宏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6758187/