OS X 上的 OpenSSL 二进制文件

OS X 上的 OpenSSL 二进制文件

有些客户下载了我的软件,为了获得全部好处,他们需要在系统上安装 OpenSSL 并将我的软件指向它。

但是,用户的技能水平可能有很大差异。即使只是选择一个对话框来选择放置 openssl 的目录,对某些人来说可能也太难了,但我必须通过自动检测或良好的帮助/手册来解决这个问题。

这意味着我宁愿不开始建议使用包管理器等,而且建议他们自己编译代码也是不可能的。

有没有可以下载适用于 osx(32 位和 64 位)的 openssl 二进制文件的已知地方?我还没找到……

以供参考:

  • OS X 包含 0.9.8 版本,该版本相当旧 + 至少与我使用的假定较新版本的库不兼容。

答案1

有没有可以下载适用于 osx(32 位和 64 位)的 openssl 二进制文件的已知地方?我还没找到……

OpenSSL 在 Unix 和类 Unix 操作系统上选择的标准位置是/usr/local/ssl。头文件位于/usr/local/ssl/include,库文件位于/usr/local/ssl/lib。另请参阅INSTALL文件和编译和安装在 OpenSSL wiki 上。

但是,你又增加了一个问题:你希望在该位置同时使用 32 位和 64 位 OpenSSL。这让你陷入通用二进制文件在 OS X 上。

对于 OpenSSL,该库是不是通用二进制安全,从技术上讲,无法使用多种架构进行构建。对于第一项,不是通用二进制安全,这是因为 OpenSSL 的每个配置都会产生一个唯一的<openssl/opensslconf.h>。对于第二项,从技术上讲不可行,您无法指定,-arch i386 -arch x86_64因为它会由于构建静态档案的配方而导致编译失败。

这两种方法都可以解决,但我不知道有关这个问题的参考资料。我与这些库密切合作,所以我碰巧知道这些问题和修复方法。我刚刚和一些 OpenSSL 开发人员讨论了为 Apple 平台创建通用二进制文件的 wiki 页面。

答案2

制作这种通用二进制文件的方法是针对每个架构单独编译。然后,您可以使用 lipo 工具将库文件合并为一个。不同的头文件可以重命名这些文件。

因此,您可以拥有 opensslconf_i386.h 和 opensslconf_x86_64.h,然后拥有一个 opensslconf.h,它只包含其中一个,具体取决于当前的编译架构。

相关内容