如何让GCC使用静态库而不是动态库?通常,您将.a文件添加到链接器参数。但是libssp链接是由-fstack-protector选项触发的。如果编译器找到一个而不是静态库,则编译器更喜欢链接到共享库。
如果我尝试在没有libssp.so的系统上运行生成的程序,程序将无法运行。
(在某些构建机器上进行系统升级后,测试系统上的旧盒子搞砸了)
答案 0 :(得分:5)
gcc -static static.c -o static -fstack-protector-all
或
gcc -static -lssp static.c -o static -fstack-protector-all
工作?你能在生成的二进制文件上运行ldd吗?
您使用的是什么版本的gcc?