配置和生成的openssl二进制文件从源代码构建时,make命令会动态链接到这些库:
linux-vdso.so.1 => (0x00007fffa75fe000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff7f79ab000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff7f75e2000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff7f7bd2000)
我的猜测是,如果我可以静态链接到lib gcc,其他共享库的依赖关系也会消失.
问题是如何让Configure脚本生成静态链接的二进制文件?
在Windows上构建过程是否也一样?
最佳答案 我在搜索同样的事情时遇到过这篇文章.我不知道使用configure脚本执行此操作的正确语法,但这就是我实现它的方法.
cd /tmp
wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar -zxvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config
然后我将“-static -static-libgcc”添加到openssl-1.0.1e / Makefile的CFLAG行中(注意这是我运行./config之后).然后我像平常一样建造它.
make INSTALL_PREFIX=/tmp/package-root install
它现在是静态编译的
$ldd /tmp/package-root/usr/local/ssl/bin/openssl
not a dynamic executable