在g ++中链接stdc ++的静态库

时间:2018-06-20 05:23:13

标签: linker g++ static-linking

我有以下shell可以通过g ++编译/链接执行文件:

g++ --std=c++11 -O2 -Wall -Werror  mainx.cpp -pthread  -o mainx.exe

和ldd mainx.exe

linux-vdso.so.1 =>  (0x00007ffd2e9ad000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fd2d7647000)
libm.so.6 => /lib64/libm.so.6 (0x00007fd2d7345000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd2d712e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd2d6f12000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd2d6b4f000)
/lib64/ld-linux-x86-64.so.2 (0x00005561f2db5000)

我想知道是否可以将那些库静态链接?!
我看不到libstdc ++。a或libpthread.a或libc.a 在我的服务器上,因此在执行以下操作时:

g++ --std=c++11 -O2 -Wall -Werror  mainx.cpp -static-libgcc -Wl,-static  -o mainx.exe

我得到了:

/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc

我知道我的服务器中没有那些静态库,如果 我坚持通过链接静态库而不是共享库来构建mainx.exe吗?

0 个答案:

没有答案