【问题标题】:bjam runtime-link=staticbjam 运行时链接=静态
【发布时间】:2011-03-18 13:12:31
【问题描述】:

我正在尝试以 exec 静态链接到 gcc 的方式进行编译。我认为运行bjam link=static runtime-link=static 应该可以解决问题吗? 当我尝试时,我收到以下错误:

...failed gcc.link TGT/bin/gcc-4.5.1/debug/link-static/runtime-link-static/datagen...
gcc.compile.c++ TGT/bin/gcc-4.5.1/release/link-static/runtime-link-static/base_data_gen.o
gcc.link TGT/bin/gcc-4.5.1/release/link-static/runtime-link-static/datagen
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status

当我运行bjam link=static 时,这些不会出现。 请指教?

【问题讨论】:

  • bjam 没有给你失败的实际命令?如果您可以使用“bjam -d+2”同时运行这两个命令,您可以比较 bjam 正在执行的链接器命令,并希望从中找出问题所在。

标签: c++ boost linker bjam


【解决方案1】:

我相信 libstdc++ 不是故意静态链接的。许多人认为这样做充满危险(尽管我还没有真正听到一个好的理由)。我不认为您可以添加一个简单的标志。对于 gcc 工具集,您可以添加类似

的内容
-static-libgcc  -Wl,-Bstatic -lstdc++

到您的 cxxflags 为您的构建变体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 2011-01-03
    • 2013-05-28
    • 2013-01-22
    • 2016-09-11
    相关资源
    最近更新 更多