ZeroMQ的库文件安装在标准的/usr/local/lib
位置,但如果使用brew
安装ZeroMQ,则将创建符号链接到/usr/local/Cellar/zeromq/4.2.2/lib
位置。如果你看看那个目录,你会发现libzmq.a
和libzmq.5.dylib
。这两个文件都是64位,并且必须与32位版本合并。
如果你从他们的网站下载ZeroMQ,您可以按如下改变configure
脚本:
./configure CC="gcc -m32" CXX="g++ -m32" --prefix=`pwd`/i32
的CC
标志和CXX
标志告诉脚本配置一个32位版本(see here)。 prefix
标志运行pwd
命令来指示配置脚本将文件安装到当前工作目录中的用户i32
目录。 make && make install
像往常一样ZeroMQ,你应该在./i32/lib
目录中有32位库。您可以重命名这些文件,以反映其32位的性质:
mv ./i32/lib/libzmq.a ./i32/lib/libzmq_i32.a
mv ./i32/lib/libzmq.5.dylib ./i32/lib/libzmq_i32.5.dylib
无论是.a
和.dylib
文件必须合并成通用二进制代码,你可以看到here和here。首先将目录更改为找到64位库的位置,即/usr/local/lib
或/usr/local/Cellar/zeromq/4.2.2/lib
。您可以重命名库文件,以反映其64位性质:
mv libzmq.a libzmq_i64.a
mv libzmq.5.dylib libzmq_i64.5.dylib
合并库是通过lipo
命令:
lipo -create zeromq-4.2.2/i32/lib/libzmq_i32.a libzmq_i64.a -output libzmq.a
lipo -create zeromq-4.2.2/i32/lib/libzmq_i32.5.dylib libzmq_i64.5.dylib -output libzmq.5.dylib
注意,符号链接libzmq.dylib -> libzmq.5.dylib
仍然有效。
就是这样!
来源
2017-11-25 20:31:13
PLG