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

时间:2010-11-03 04:23:00

标签: macos build openssl 32bit-64bit

我下载了OpenSSL源代码,并完成了configmakesudo 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位? (我在“安装”文件中没有看到任何相关内容。)

2 个答案:

答案 0 :(得分:21)

$ curl https://www.openssl.org/source/openssl-1.0.0a.tar.gz | tar xz
$ cd openssl-1.0.0a
$ export CFLAGS="-arch i386"
$ export LDFLAGS="-arch i386"
$ ./config
$ make
$ lipo -info libssl.a
input file libssl.a is not a fat file
Non-fat file: libssl.a is architecture: i386
$ lipo -info libcrypto.a
input file libcrypto.a is not a fat file
Non-fat file: libcrypto.a is architecture: i386

答案 1 :(得分:1)

如果有人正在寻找构建动态库的解决方案,那么就是这样做的:

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

对于64位,运行

./Configure darwin64-x86_64-cc -shared
make