我编译了我的动态链接程序:
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
),并将其他库动态链接?