Macos 如何在Mac OS X上将OpenSSL构建为32位(i386)?
我下载了OpenSSL源代码,并完成了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
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位Inteli386
(请参见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