【问题标题】:iOS Link Binary with library for debug onlyiOS Link Binary 与库仅用于调试
【发布时间】:2012-11-27 21:28:12
【问题描述】:

我在为我的项目设置不同的配置时遇到了一点问题。我有同一个静态库的两个版本。一个启用了日志记录,另一个没有。

我使用两个不同的 xcconfig 文件进行调试与发布。在这些文件中,我为静态库的两个变体指定库和标头搜索路径。到目前为止,一切都很好。

但是,在我的构建设置中,我看不到有条件地链接实际库的方法。即对 Debug 使用 debug 变体,对 Release 使用 release。

有什么想法吗?

【问题讨论】:

  • 我认为这里最快的答案是:你不能。但我认为解决方案可能是提供一种方法来启用或禁用静态库本身的日志。然后,您可以使用相同的库,只需在需要时启用或禁用日志

标签: iphone objective-c ios xcode


【解决方案1】:

您需要使用“其他链接器标志”构建设置链接库,而不是标准的“链接二进制文件与库”UI。可以根据配置更改构建设置:

单击三角形,您可以为 Debug/Release 提供不同的值。您将需要使用-l 标志。例如,对于libMyLib.a 的文件名,使用标志-lMyLib。您可能需要编辑“库搜索路径”以搜索适当的位置。

如果调试版本和发布版本的文件名相同并且您不想更改它们,请将它们分别放入自己的lib/Debuglib/Release 目录中。然后编辑“库搜索路径”构建设置,添加 "$SRCROOT/lib/Debug""$SRCROOT/lib/Release" 以进行适当的配置。

【讨论】:

  • 为我工作。谢谢!
  • 为了扩展 Mike 的答案,如果您要链接的是一个框架,您可以在其他链接器标志中使用“-framework SystemConfiguration”之类的东西
  • 这仅对我部分有效。我想使用共享库 (*.dylib)。通常我在 Build Phases -> Embed Frameworks 中有并进入它,以便将 lib 放在包中。如何在这里选择正确的 lib 版本?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 2023-04-10
  • 2015-07-23
  • 2017-07-07
  • 2020-05-10
相关资源
最近更新 更多