【问题标题】:How do I add the boost library to Xcode 11? C++如何将 boost 库添加到 Xcode 11? C++
【发布时间】:2019-12-24 22:31:29
【问题描述】:

我找不到在 Xcode 11.2.1 中添加增强功能的方法。我在目标下找到了一个名为“框架和库”的设置。我将 boost 目录拖到那里,它被添加到项目的“框架”部分。但是,在构建项目时,它说“找不到文件”。例如:

#include <boost/lambda/lambda.hpp> 

导致“找不到文件”错误。我没有添加 boost,而是拖动了 Macports 的整个包含区域。 Xcode 花了一段时间来解析它,但我得到了同样的错误。所以,在框架下它有“包含”,但它找不到相关的 hpp 文件,即使我检查过并且它在 boost 树中。

我已经通过 Macports 安装了 boost。它位于 /opt/local/include/boost 中。

在 Xcode 文档中,我看到了对“USER_HEADER_SEARCH_PATHS”的引用。我想出了如何在配置文件中设置它,所以我在项目中添加了一个配置文件。我将此添加到配置文件中: USER_HEADER_SEARCH_PATHS = /opt/local/include/boost 但这也不起作用。 (如果我删除了提升,那也不起作用)。

当我在项目的框架位置中选择“包含”时,我看到该对象(Xcode 窗口的右侧)有不同的“身份和类型”设置。我选择了“绝对路径”,它显示完整路径为 /opt/local/include 这是正确的。但是,这也不能解决问题。

我是否需要在预定义的区域中创建一个链接以便 Xcode 可以找到它?

我确实找到了一个相当难看的解决方法:在 STL 所在的同一区域(在 Xcode.app 目录结构内)创建一个指向 boost 库的软链接。

使用该设置仅适用于单个文件。我可以将单个文件添加到设置中(通过拖放),但它不会遵循嵌套目录,因此显然这不适用于诸如 boost 之类的库实现。

【问题讨论】:

    标签: c++ xcode boost


    【解决方案1】:

    我更喜欢将依赖库保留在项目区域内。所以这就是我如何进行测试:

    1. 在 Xcode 中从 macOS Command-line App C++ 模板创建新的 TestBoost 项目
      (现在有TestBoost.xcodeproj所在的TestBoost文件夹)

    2. 下载最新的 boost boost_1_72_0.tar.gz 并解压
      (现在有 boost_1_72_0 文件夹与 boost)

    3. boost_1_72_0 文件夹复制到项目TestBoost 文件夹中,使其位于TestBoost.xcodeproj 旁边

    4. 在 Xcode Project Navigator 中选择 TestBoost 项目 > 选择 TestBoost 目标 > 选择 Build Settings 选项卡

    5. Search Paths部分选择Header Search Path,双击数值区域并输入${SRCROOT}/boost_1_72_0(留下non-recursive标志)

    6. TestBoost 目标中删除默认main.cpp(以避免主函数混淆)并添加一些来自boost 的示例进行测试,例如。 boost_1_72_0/libs/algorithm/example/search_example.cpp

    7. 构建并运行 > 成功

    输出:

    【讨论】:

    • 谢谢。这行得通!我想把 boost 保持在原来的位置,所以我将 Header Search 路径修改为 /opt/local/include,boost 就在里面。
    • 一个问题是“搜索路径”出现在基本选项中,但它没有显示添加标题搜索路径的方法,直到我转到“全部”选项卡,在那里看到它,现在,已更改,它出现在基本选项中。有点混乱。我检查了文档,这并不明显。
    • 第 3 项。将 boost_1_72_0 文件夹复制到项目 TestBoost 文件夹中,使其位于 TestBoost 旁边。xcodeproj 让我清楚如何设置搜索头路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多