bjam runtime-link = static
问题描述:
我试图以某种方式进行编译,使得exec静态链接到gcc
。我推测运行bjam link=static runtime-link=static
应该做的伎俩? 当我尝试,我得到像下面的错误:bjam 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
不来。 请指教?
答
我相信libstdC++故意不会静态链接。这样做被许多人认为是充满危险的(虽然我没有真正听说过一个很好的理由)。我不认为你可以添加一个简单的标志。对于海湾合作委员会的工具集,你可以添加如
-static-libgcc -Wl,-Bstatic -lstdc++
你的cxxflags为你的构建变种。
bjam是不是给你失败的实际命令?如果你可以使用“bjam -d + 2”运行,你可以比较链接器命令bjam正在执行,并从那里,希望找出问题。 – AFoglia 2011-03-21 20:20:16