【问题标题】:Xcode - linking binary with debug and release librariesXcode - 将二进制文件与调试和发布库链接
【发布时间】:2014-05-14 20:48:44
【问题描述】:

我在 Xcode 5 中有一个使用各种 boost 库的项目。我已经构建了 boost 的调试和发布版本,并将二进制文件放在同一位置。

我想以这样一种方式构建我的调试和发布应用程序:当我构建调试版本时,它会链接到调试提升库,而当我构建发布版本时,它会链接到发布提升库。

在 Xcode 中,在 Build Phases 下,我看不到如何在“Link binary With Libraries”中指定一组二进制文件用于调试,而另一组用于发布。

我该怎么做?

【问题讨论】:

    标签: c++ xcode boost linker


    【解决方案1】:

    为此,您需要进入目标的“构建设置”窗格,找到“其他链接器标志”设置,单击左侧箭头打开设置详细信息,然后在其中输入不同的值“调试”和“发布”行。
    您想要的选项的语法是-l<library name without "lib" prefix or extension>,例如:

    • 发布设置中的-lboost_serialization-mt 将与 libboost_serialization-mt.dylib 链接
    • Debug 设置中的-lboost_serialization-mtd 将与 libboost_serialization-mtd.dylib 链接

    您可能还需要在相同的设置中使用-L</path/to/your/boost/libs> 告诉它您的库所在的位置,例如-L/opt/local/lib/

    您可能还需要从“使用库链接二进制文件”阶段完全删除 boost 库。

    您也可以使用 .xcconfig 设置文件绕过 GUI。详情请见This question

    【讨论】:

    • 非常感谢马丁。我正在链接静态增强库,所以我必须指定完整的文件名+扩展名。这是可以预期的吗?此外,将我的 Xcode 应用程序中构建的其他库放在“使用库链接二进制文件”中是否正常做法?即,我也不想将它们从那里取出并将它们添加到“其他链接器标志”中,对吗?
    猜你喜欢
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2012-07-24
    • 2015-01-16
    • 2013-10-06
    • 1970-01-01
    相关资源
    最近更新 更多