![使用 openssl-1.0.1e 进行编译,但链接到旧的 glibc](https://linux22.com/image/1377510/%E4%BD%BF%E7%94%A8%20openssl-1.0.1e%20%E8%BF%9B%E8%A1%8C%E7%BC%96%E8%AF%91%EF%BC%8C%E4%BD%86%E9%93%BE%E6%8E%A5%E5%88%B0%E6%97%A7%E7%9A%84%20glibc.png)
期望结果:
编译一个二进制文件,其中静态链接的是 openssl 1.0.1e,但动态链接的是 glibc、stdc++ 等。二进制文件应该可以在大多数服务器上运行,例如 Ubuntu 11.04 或 RHEL 6、CentOS 6.4。
问题:
我想要编译的代码依赖于 openssl 1.0.1e。Openssl 1.0.1e 依赖于 Ubuntu 较新版本(如 12.04、glibc 2.13)中的 glibc,并且无法编译 Ubuntu 11.04 中的 glibc。
在 Ubuntu 12.04 上编译的二进制文件无法在 Ubuntu 11.04 上运行,并出现错误消息:
$BINARY: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by $BINARY)
我如何编译我的二进制文件以便它可以在旧的 Ubuntu 和 RHEL6、CentOS 6.4 上运行?