【问题标题】:Include boost in xcode在 xcode 中包含提升
【发布时间】:2012-04-13 13:42:08
【问题描述】:

我无法在 xcode 中包含 boost。 我使用了 Boost 文档中的构建说明,并在 xcode /usr/local/lib 和 /usr/local/include 中编写了搜索路径。

请帮忙!

【问题讨论】:

    标签: xcode boost


    【解决方案1】:

    我花了很长时间试图完成这项工作。我无法使用 Boost 项目主页上的下载使其工作,所以我改用 homebrew

    安装自制软件后,我使用以下方式安装了 Boost:

    brew install boost 
    

    或者,如果你没有安装 python,使用:

    brew install boost --without-python
    

    如果没有 --without-python,它将无法安装在我的机器上。

    1. 在 XCode (4.3.3) 中,选择左侧边栏中的项目文件(最顶部),然后在项目窗格中再次选择它。
    2. 选择构建设置选项卡,然后选择全部。
    3. 在搜索路径下,添加标题搜索路径 /usr/local/Cellar/boost/1.49.0/include/ 并选中该框。该路径现在应该显示在构建设置中。

    现在,您可以使用:

    #include <boost/regex.hpp>
    

    或任何您需要的 Boost 包。


    如果您已经安装了 boost,请使用 $ brew info boost 获取正确的路径:

    boost: stable 1.60.0 (bottled), HEAD
    Collection of portable C++ source libraries
    https://www.boost.org/
    /usr/local/Cellar/boost/1.60.0_1 (11,139 files, 436.5M) *
      Poured from bottle
    From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/boost.rb
    

    【讨论】:

    • 不错!这在 XCode 5 中对我有用,尽管我添加了 /include/,而不是 boost 目录。
    • 我在 homedir 中创建了一个指向 cellar/boost/1.49.0 目录的符号链接
    • 我的header搜索路径是这样的:$(HOME)/boost_1_57_0/include
    【解决方案2】:

    我在 mac os 10.6.8 上使用带有 Xcode 3.2.1 的 boost

    我今天在使用 boost 和 Xcode 时遇到了问题,最后我设法让它工作了,所以我希望这会有所帮助:

    1. 下载加速,我今天拿到了 1.52.0,解压它

    2. 安装提升:

      起初我无法执行./bootstrap.sh,它在前几行之后就停止了。 google了一下,得到了答案,是因为很久以前安装Xcode的时候,不知什么原因没有勾选安装选项中的“Unix开发”。此时,重新安装新版本的Xcode,检查“unix开发线”

      之后,./bootstrap./b2 安装工作正常

    3. lambda 示例:

      此时,第一个示例应该可以正常工作,如果它没有尝试在项目设置/标题搜索路径中添加/usr/local/include

    4. 使用线程或其他需要构建的东西

      线程需要特定的 dylib 才能工作:libboost_system.dylib。在我的系统上,它位于/usr/local/lib,在./b2 install之后

      在 GUI 的左侧,您可以右键单击任意位置并选择添加现有文件

      如果文件被隐藏,你可以在/Developer/SDKs/MacOSX10.6.sdk/usr/local目录中找到进入usr/local/lib的快捷方式

    一旦libboost_system.dylib 确实出现在 GUI 的组和文件部分,它应该可以工作

    【讨论】:

    • 完美,希望我能给你+10,让我在这个星期五晚上保持学习 c++ 的自尊心!
    【解决方案3】:

    我关注了 henrikstroem 的精彩帖子,如下所示:

    通过homebrew 安装,不到 3 分钟

    mac:~ woz$ brew install boost
    ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/boost-1.57.0.yosemite.bottle.tar.gz
    ######################################################################## 100.0%
    ==> Pouring boost-1.57.0.yosemite.bottle.tar.gz
    ?  /usr/local/Cellar/boost/1.57.0: 10572 files, 439M
    mac:~ woz$
    

    在你的主目录中创建符号链接

    mac:~ woz$ cd
    mac:~ woz$ ln -s /usr/local/Cellar/boost/1.57.0 boost_1_57_0
    mac:~ woz$ 
    

    在 Xcode 内部引用刚刚创建的符号链接,像这样

    对于Header Search Paths,请使用$(HOME)/boost_1_57_0/include

    对于Library Search Paths,请使用$(HOME)/boost_1_57_0/lib

    【讨论】:

    • 我正在尝试为bind 复制它,但它拒绝工作,#include &lt;boost/bind/bind.hpp&gt; 一直被标记为“找不到文件”。
    • 除此之外,我还为各个库添加了 dylib 文件。
    • 在搜索路径下有十几个小节。其中两个是标题和库搜索路径。但是这些又细分为release和debug,我们用哪一个呢?为什么我们会使用其中一个而不使用另一个。为什么我们必须同时使用两者?当然应该有一种方法可以只引用“/usr/local/Cellar/boost/1.68.0_1”并让 Xcode 应用程序完成剩下的工作?
    【解决方案4】:
    mic@mbp: ~/work $ brew install boost
    mic@mbp: ~/work $ ls -l /usr/local/include/boost
    lrwxr-xr-x  1 mic  wheel  36 Nov 27 01:06 /usr/local/include/boost -> ../Cellar/boost/1.56.0/include/boost
    

    你好,我在Header Search Paths 中添加/usr/local/include(双击它,但调试或其他子检查),然后

    #include <boost/asio.hpp>
    #include <boost/date_time.hpp>
    
    using namespace boost;
    
    int main() {
        asio::io_service io;
    
        io.run();
        return 0;
    }
    

    工作,:D

    【讨论】:

    • 为什么是ls -l,而不是ln -s
    猜你喜欢
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多