我正在尝试静态链接我的项目中的标准库。我已经尝试了来自 SO 和其他网站(http://www.trilithium.com/johan/2005/06/static-libstdc/)上各种线程的静态链接选项的几种变体,但它们都没有产生预期的结果.
这是我当前的标志设置:
g++ -Wall -g -static-libgcc -static-libstdc++ -Iinclude -std=c++11
我也试过:
g++ -Wall -g -Wl,-Bstatic -lstdc++ -std=c++11
对于这些变体中的任何一个,ldd
仍然的输出是:
linux-gate.so.1 => (0xb77b1000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0x4e085000)
libm.so.6 => /lib/libm.so.6 (0x4daf0000)
libgcc_s.so.1 -> /lib/libgcc_s.s0.1 (0x4dd1f000)
libc.so.6 => /lib/libc.so.6 (0x4d90a000)
/lib/ld-linux.so.2 (0x4d8e7000)
运行file
还告诉我它是一个动态链接的二进制文件。我已经在多个发行版上尝试过,包括 Fedora 18、Ubuntu 12.04 和 CentOS,但无济于事。