如何为特定部署 macOS 版本编译 OpenSSL 库?

Posted

技术标签:

【中文标题】如何为特定部署 macOS 版本编译 OpenSSL 库?【英文标题】:How to compile OpenSSL libraries for specific deployment macOS version? 【发布时间】:2020-07-23 00:26:25 【问题描述】:

我正在 macOS 10.15 上编译 OpenSSL 库,但我的应用程序部署目标(使用这些 OpenSSL 库)是 10.12。 因此,当我将这些库与我的应用程序链接时,我会收到多个类似这样的错误:

ld: warning: object file (.../libcrypto.a) was built for newer OXS version (10.15) than being linked (10.12)

问题是: 如何编译 OpenSSL 以与特定部署目标链接(在我的情况下是 10.12)?

在编译 OpenSSL 时,我尝试这样配置它:

$ ./configure darwin64-x86_64-cc --prefix=/Users/username/openssl --openssldir=/Users/username/openssl/ssl -mmacosx-version-min=10.12

但这无济于事。

【问题讨论】:

【参考方案1】:

好的,我没有执行命令:

$ make distclean

在我之前的编译结束时。

所以,它应该是这样的:

$ ./configure darwin64-x86_64-cc --prefix=/Users/username/openssl --openssldir=/Users/username/openssl/ssl -mmacosx-version-min=10.12
$ make depend
$ make install
$ make distclean

然后所有临时文件都将被删除,下一次修改后的编译将起作用。

【讨论】:

以上是关于如何为特定部署 macOS 版本编译 OpenSSL 库?的主要内容,如果未能解决你的问题,请参考以下文章

SBT 如何为特定的 groupid 禁用 Ivy 缓存

Azure Pipelines 如何为“仅限手动”触发的版本筛选每个阶段的工件

如何为 iOS 版本运行特定委托?

如何为特定版本的 node.js 安装 d.ts?

如何为项目设置特定的 Ruby 版本(无 rvm 和 rbenv)

如何为多个 Python 版本和平台构建编译模块