1. 坑多的办法
-static
如果需要链接成不依赖任何so文件的程序,用ldd查看显示为"not a dynamic executable",但是这个选项时不推荐的。
即使像这样链接(c++):“-static-libgcc -static-libstdc++ -static”
一是会出现警告,比如我使用了系统调用getaddrinfo,“Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for l
inking”
二是会挂(c代码没试过),类似如下的调用栈,在main函数之前,知道原因的同学请留言:-)
#0 0x0000000000000000 in ?? ()
#1 0x0000000000437c61 in std::locale::_S_initialize() ()
#2 0x0000000000437ca3 in std::locale::locale() ()
#3 0x0000000000435ce4 in std::ios_base::Init::Init() ()
#4 0x0000000000401925 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at /usr/include/c++/5/iostream:74
#5 0x000000000040194f in _GLOBAL__sub_I__Z4addrv () at src/cotasia.cpp:49
#6 0x