【问题标题】:Building boost with different gcc version使用不同的 gcc 版本构建 boost
【发布时间】:2011-07-17 19:35:23
【问题描述】:

我可以访问需要构建 boost 1.46 的服务器。如何强制 bootstrap.sh 使用 /usr/bin/gcc-4.4。默认情况下它使用 /usr/bin/gcc 我不知道如何改变它

【问题讨论】:

    标签: gcc boost build


    【解决方案1】:

    我使用类似这样的东西为 ARM 工具链交叉构建了 Boost:

    echo "using gcc : arm-unknown-linux-gnueabi : /usr/local/arm/bin/g++ ; " >> tools/build/v2/user-config.jam
    

    你应该可以做这样的事情:

    boost 1.59 及以上版本:

    echo "using gcc : 4.4 : /usr/bin/g++-4.4 ; " >> tools/build/src/user-config.jam
    

    boost 1.58 及以下版本:

    echo "using gcc : 4.4 : /usr/bin/g++-4.4 ; " >> tools/build/v2/user-config.jam
    

    然后构建

    bjam --toolset=gcc-4.4
    

    【讨论】:

    • 另一个确认:Linux Mint 17.1, x64, GCC-4.1, Boost 1.43
    • 如果您在本地构建并且已经安装了 Boost 系统,您可能需要在 ./bjam 上添加一个 ./
    • 为什么是bjam 而不是b2
    • 顺便说一句:小心空间!缺少空格会出错!
    【解决方案2】:

    最新版本的 Boost 1.71 的工作方式如下:

    >export CC=<path to custom gcc>/gcc
    >export CXX=<path to custom gcc>/g++
    >./bootstrap.sh
    >./b2 --toolset=gcc stage threading=multi link=shared
    

    您可以使用以下命令检查用于构建的 gcc 版本

    >ldd b2
        linux-vdso.so.1 =>  (0x00007ffcaa5f4000)
        libstdc++.so.6 => <path to custom gcc>/lib64/libstdc++.so.6 (0x00002b85ab701000)
        libm.so.6 => /lib64/libm.so.6 (0x00002b85abaaa000)
        libgcc_s.so.1 => <path to custom gcc>/lib64/libgcc_s.so.1 (0x00002b85abdac000)
        libc.so.6 => /lib64/libc.so.6 (0x00002b85abfc3000)
        /lib64/ld-linux-x86-64.so.2 (0x00002b85ab4dd000)
    
    

    或在 bin.v2/project-cache.jam 文件中

    【讨论】:

    • 只有 b2 是用指定的 gcc 构建的,而不是 boost 库
    【解决方案3】:

    Boost 1.59 更新

    现在你需要这样做:

    echo "using gcc : : /usr/bin/g++44 ; " >> tools/build/src/user-config.jam
    

    【讨论】:

      【解决方案4】:

      对于想知道 OSX 10.11.6 上的 Boost 1.61 答案的人:Sean 的 answer 对我不起作用,因为 this boost report 中提到的 ld: unknown option: -h 错误。为了让它工作,我在他的命令中用darwin替换了gcc

      echo "using darwin : 6.2 : /usr/local/bin/g++-6 ; " >> tools/build/src/user-config.jam
      

      为了编译和安装它,我使用了

      ./b2 --toolset=darwin-6.2 --prefix=$HOME/.local/ install
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-15
        • 2015-05-04
        • 2021-03-07
        • 2013-02-20
        • 2011-07-15
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        相关资源
        最近更新 更多