2011-03-18 75 views
1

我试图以某种方式进行编译,使得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不来。 请指教?

+1

bjam是不是给你失败的实际命令?如果你可以使用“bjam -d + 2”运行,你可以比较链接器命令bjam正在执行,并从那里,希望找出问题。 – AFoglia 2011-03-21 20:20:16

回答

0

我相信libstdC++故意不会静态链接。这样做被许多人认为是充满危险的(虽然我没有真正听说过一个很好的理由)。我不认为你可以添加一个简单的标志。对于海湾合作委员会的工具集,你可以添加如

-static-libgcc -Wl,-Bstatic -lstdc++ 

你的cxxflags为你的构建变种。