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