【发布时间】:2011-05-04 07:24:39
【问题描述】:
我下载了 OpenSSL 源代码,并做了config、make、sudo make install 三部曲。
然后我构建了我的项目,链接了 libcrypto.a 和 libssl.a,但是得到了:
ld: warning: in /usr/local/ssl/lib/libcrypto.a, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: in /usr/local/ssl/lib/libssl.a, file was built for unsupported file format which is not the architecture being linked (x86_64)
我很确定我想将 OpenSSL 重新构建为 32 位 (i386),因为(由于与此问题无关的原因)我的项目需要是 32 位的。
如何在 Mac OS X 上将 OpenSSL 构建为 32 位? (我在“安装”文件中没有看到任何关于此的内容。)
【问题讨论】:
-
通常在 OS X 上,64 位 Intel 称为
x86_64,32 位 Intel 称为i386(参见man arch)。 -
注意,事实证明我不需要在 Mac OS X (10.6.4) 上下载和构建 OpenSSL。一旦我得到正确的链接器(-l)参数,我的项目就可以正常构建。 (有人告诉我,与 Mac OS X “捆绑”的 OpenSSL 库是一个胖二进制文件,包括所有 x86_64、i386 和 PPC 构建。
-
没错,OS X 中包含的几乎所有东西都是多架构通用的。构建自己的 OpenSSL 的唯一原因是您是否需要更新版本。
-
@NedDeily 既然如此,您是否建议通过删除我的 64 位 brew 安装的 openssl 来解决此问题,以便构建可以访问 OS X 的通用?:stackoverflow.com/questions/34832512/…
-
@Pyderman,如果您需要 OpenSSL 库的 32 位/64 位最新版本,Homebrew 现在似乎支持构建通用版本;见github.com/Homebrew/homebrew/issues/28448。
标签: macos build openssl 32bit-64bit