【问题标题】:Forwarding app preprocessor information to static library将应用预处理器信息转发到静态库
【发布时间】:2014-02-06 13:08:04
【问题描述】:

我正在测试应用程序中的 XCode 中开发一个静态库。我可以通过将库项目拖到测试应用程序项目中,然后将库添加到测试应用程序项目构建阶段来同时处理测试应用程序和库。 .

有没有办法将预处理器标志从测试应用程序转发到库?例如,我尝试将标志 MY_DEBUG_FLAG 添加到测试应用程序项目中,然后在我的静态库头中添加 . . .

#if defined(MY_DEBUG_FLAG)
#define MY_DEBUG_FLAG_USED
#endif

...但是,库中的 #ifdef MY_DEBUG_FLAG_USED 块将被忽略。我总是可以将标志添加到库和应用程序项目中,但这是一个令人讨厌的重复,我想尽可能避免。我希望我的目标很明确,如果有人有任何建议,我对完全不同的成语持开放态度。

【问题讨论】:

    标签: c xcode c-preprocessor


    【解决方案1】:

    由于定义的预处理是在编译之前执行的,因此无法将预处理器标志传递给已编译的库。

    您可以做的是向库中添加一组变量,以便它可以在运行时检查,并将这些变量设置为您的应用程序中的相关值,或者让库提供用于启用或禁用其不同方面的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 2015-11-27
      • 2019-07-12
      • 2022-06-29
      相关资源
      最近更新 更多