參考:http://www.youduoshao.com/2014-11-19/201411192349.html
轉(zhuǎn)載表明出處:關(guān)于在iOS中使用libpomelo2 - 簡書
一、從github下載到桌面
二、下載gyp
由于libpomelo2用gyp生成各種編譯環(huán)境下的項(xiàng)目文件融求,所以茫死,還要下載gyp慨默。
下載地址是chromium.googlesource.com/external/gyp
三咳焚、安裝gyp
cd到gyp的目錄后泉哈,運(yùn)行如下命令:
$python setup.py install
這是一個(gè)python腳本津函,所以運(yùn)行這個(gè)命令的前提是你的計(jì)算機(jī)上安裝了python肖粮。
不用擔(dān)心,OS-X一般自帶python尔苦。
如果運(yùn)行上面的命令后涩馆,提示找不到python行施,請(qǐng)按照網(wǎng)上的教程,安裝python2.7魂那。
安裝完python后蛾号,再運(yùn)行這個(gè)命令,可能會(huì)提示你權(quán)限不足:
[Errno 13] Permission denied: '/Library/Python/2.7/site-packages/test-easy-install-11922.pth'
不用擔(dān)心涯雅,運(yùn)行如下命令
$ su -
輸入root用戶的密碼后鲜结,進(jìn)入root用戶模式下,再cd到gyp目錄活逆,重新運(yùn)行安裝命令:
$python setup.py install
不出意外的話精刷,運(yùn)行完就會(huì)提示gyp安裝成功。執(zhí)行如下命令
# exit
退出root用戶蔗候。
再執(zhí)行g(shù)yp命令
$gyp
如果彈出如下信息贬养,說明安裝成功:
gyp: usage: gyp [options ...] [build_file ...]
gyp: error: no build_file
至于彈不出這個(gè)信息的情況,恕我沒遇到琴庵,所以……
四误算、用gyp生成xcode的工程。
進(jìn)入pomelo目錄之后迷殿,運(yùn)行如下命令:
gyp --depth=. pomelo.gyp -Dno_tls_support=true -Dpomelo_library=static_library
作者原話:『在ios中儿礼,目前的openssl編譯有點(diǎn)小問題,需要對(duì)openssl的代碼做少量修改庆寺,現(xiàn)在沒時(shí)間搞蚊夫,不需要的話,直接把openssl支持先disable掉懦尝≈祝』,Dno_tls_support=true是為了讓項(xiàng)目支持tls陵霉。
運(yùn)行完這句命令就可以在libpomelo2的目錄下看到生成的xcodeproj文件琅轧,deps下的jansson和uv目錄下也會(huì)生成相應(yīng)的xcodeproj文件。
五踊挠、生成pomelo靜態(tài)庫乍桂。
先把解壓改的libpomelo2文件夾權(quán)限改成 讀和寫 ,并應(yīng)用到子目錄效床。
打開pomelo.xcodeproj睹酌,在項(xiàng)目的BuildSettings中把PreprocessorMacros預(yù)定義宏中的PC_NO_TLS_TRANS刪掉。
然后在xcode手動(dòng)加上tr/uv/tls* 這些文件剩檀。
然后手動(dòng)地修改下工程配置憋沿,包括支持的平臺(tái),SDK類型沪猴。
分別用iPhone6和iOS Device 編譯辐啄,分別把模擬器和真機(jī)上的 libpomelo2.a甥绿、libjansson.a 、libuv.a復(fù)制到桌面的Default和Default1文件夾中则披。
cd到桌面共缕,合并。
$lipo -create ./build/Default/libpomelo2.a? ./build/Default1/libpomelo2.a? -output libpomelo2.a
$lipo -create ./build/Default/libjansson.a? ./build/Default1/libjansson.a? -output libjansson.a
$lipo -create ./build/Default/libuv.a? ./build/Default1/libuv.a? -output libuv.a
合并后的三個(gè).a文件在桌面士复。
六图谷、生成openssl靜態(tài)庫。
由于之前gyp成xcodeproj項(xiàng)目的時(shí)候并沒有編譯openssl的項(xiàng)目阱洪,因此要自己去github下載openssl對(duì)應(yīng)的庫
下載地址是:x2on/OpenSSL-for-iPhone · GitHub
解壓后打開便贵,分別用iPhone6和iOS Device 編譯,在Frameworks文件夾下右鍵點(diǎn)擊libcrypto.a或者libssl.a冗荸,選擇ShowInFinder承璃,分別把模擬器和真機(jī)上的 libcrypto.a、libssl.a 復(fù)制到桌面的Default和Default1文件夾中蚌本。
cd到桌面盔粹,合并。
$lipo -create ./build/Default/libcrypto.a? ./build/Default1/libcrypto.a? -output libcrypto.a
$lipo -create ./build/Default/libssl.a? ./build/Default1/libssl.a? -output libssl.a
七程癌、精簡pomelo舷嗡。
在桌面新建一個(gè)文件夾名pomleo,將libpomelo2下的deps和incliude復(fù)制到其中嵌莉。并且將生成的5個(gè).a靜態(tài)庫添加其中进萄。
八、將生成的庫文件添加到xcode工程中锐峭。
將pomelo文件夾復(fù)制到你的項(xiàng)目文件夾下中鼠。
在Xcode中打開你要調(diào)用libpomelo2的項(xiàng)目,在項(xiàng)目target->Build Phases將生成的5個(gè).a靜態(tài)庫文件加入到”Link Binary With Libraries”里沿癞。
在”Build Settings”的”Header Search Paths”以及"User Header Search Paths"里加入如下目錄:
${PROJECT_DIR}/pomelo/include
${PROJECT_DIR}/pomelo/deps/openssl
${PROJECT_DIR}/pomelo/deps/jansson/src
${PROJECT_DIR}/pomelo/deps/uv/include
九援雇、編譯工程。
至此抛寝,完成熊杨!
在iOS中OC和C是可以混編曙旭,所以可以直接參考test/test-tr_tls.c范例盗舰!
附上我編譯的正在使用的庫-》鏈接: 百度云?密碼: g369
如有錯(cuò)誤,請(qǐng)各位不吝賜教桂躏,歡迎 簡信 交流钻趋。