Macos 如何在Mac OS X上将OpenSSL构建为32位(i386)?

Macos 如何在Mac OS X上将OpenSSL构建为32位(i386)?,macos,build,openssl,32bit-64bit,Macos,Build,Openssl,32bit 64bit,我下载了OpenSSL源代码,并完成了config,make,sudomake安装三部曲 然后我构建了我的项目,链接到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/l

我下载了OpenSSL源代码,并完成了
config
make
sudomake安装
三部曲

然后我构建了我的项目,链接到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位?(我在“安装”文件中没有看到任何与此相关的内容。)

如果有人正在寻找一种构建动态库的解决方案,以下是如何做到这一点:

tar -xvzf <openssl gz file>
./Configure darwin-i386-cc -shared 
make

一般来说,在OS X上,64位Intel被称为
x86\u 64
,32位Intel
i386
(请参见
man arch
)。注意,事实证明我不需要在Mac OS X(10.6.4)上下载和构建OpenSSL。一旦链接器(-l)参数正确,我的项目就构建得很好。(有人告诉我OpenSSL库是“捆绑的”Mac OS X是一个包含所有x86_64、i386和PPC版本的胖二进制文件。没错,OS X包含的几乎所有内容都是多拱通用的。构建自己的OpenSSL的唯一原因是如果您需要更新版本。@在这种情况下,您是否建议通过删除我的64位brew安装来解决此问题openssl,以便构建可以访问OS X的通用版本?:@Pyderman,如果您需要32位/64位最新版本的openssl库,看起来Homebrew现在支持构建通用版本;请参阅。这是一个很好的答案!很好!我下载了openssl-1.0.2g。配置默认为i686构建,CFLAGS&LDFLAGS为not必需。截至目前为止,当前的稳定版本是
openssl-1.1.0i.tar.gz
。此外,对我来说,配置32位版本的正确方法是:
/configure darwin-i386-cc
(而不是使用上面显示的
导出
命令和
/configure
命令)
tar -xvzf <openssl gz file>
./Configure darwin-i386-cc -shared 
make
./Configure darwin64-x86_64-cc -shared
make