gcc -static:仅静态链接一个指定的库

时间:2015-12-25 20:03:38

标签: gcc static-libraries static-linking dynamic-linking

我编译了我的动态链接程序:

gcc -s -o foo foo.c -lcrypto

它与以下库链接:

linux-vdso.so.1 =>  (0x00007fff0bff5000)
libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fd68431c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd683f91000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd683d8c000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fd683b75000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd68471c000)

现在我需要在一个系统上运行它,该系统只缺少一个链接库(libcrypto.so.1.0.0)。

我可以将我的代码编译为静态链接:

gcc -static -s -o foo foo.c -lcrypto

但结果二进制文件太大了,显然是因为它静态链接所有库。

我是否可以静态链接一个库(libcrypto.so.1.0.0),并将其他库动态链接?

0 个答案:

没有答案