gpt4 book ai didi

ios - 启用静态库中使用的 ifdef 宏

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:10:22 26 4
gpt4 key购买 nike

可以使用静态库中定义的宏吗?

我有自己的调试宏,名为 TWDEBUG,我在为共享而创建的静态库中使用它。如果我将静态库导入我的新项目并使用它,编译器似乎无法识别它。我确实将预处理器宏设置为 TWDEBUG 并将 Other C flagsOther C++ flags 设置为 -TWDEBUG,但是当我运行了 ifdef 宏没有执行的代码。

最佳答案

宏在编译时求值。因此,当您构建静态库时,它们的值会被卡住。对于调试语句,这通常意味着它们被省略而不是构建库的一部分。

如果稍后将静态库添加到项目中,则可以更改宏的值。但它不会对静态库有任何影响,因为它不再被编译。缺少调试语句。

更新:

为了实现调试选项,我看到了两个选项:

  1. 您可以使用全局变量和适当的 ifs 来打开和关闭调试,而不是使用宏和 ifdef。其他开发人员可以使用 API(全局函数)设置调试级别,这样您就可以隐藏全局变量。

  2. 从相同的源代码创建两个静态库,一个为开发目的启用调试,另一个为生产用途禁用调试。这个选项可能只有在 XCode 可以在两个库之间自动切换时才可行。目前,我不知道您将如何配置它。

关于ios - 启用静态库中使用的 ifdef 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6758187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com