MacOS上編譯Poco庫的IOS靜態庫版本

2021-10-20 08:21:18 字數 1784 閱讀 6287

1、 模擬器:iphone5 及以下的模擬器版本為 i386,iphone5以上的模擬器架構是x86_64

2、 真機: armv7 , armv7s, arm64

3、osx 的架構是x86_64

> gunzip poco-1.10.1-all.tar.gz

> tar -xf poco-1.10.1-all.tar

> cd poco-1.10.1-all

iphone_sdk_root修改為

tool_prefix修改為

cc和cxx修改為

真機配置

./configure --config=iphone --no-tests --no-samples --omit=crypto,netssl_openssl,data/odbc,data/mysql
模擬器配置
./configure --config=iphonesimulator --no-tests --no-samples --omit=crypto,netssl_openssl,data/odbc,data/mysql
編譯

armv7

make iphone_sdk_version_min=5.0 poco_target_osarch=armv7 -s -j4
armv7s
make iphone_sdk_version_min=5.0 poco_target_osarch=armv7s -s -j4
arm64
make iphone_sdk_version_min=5.0 poco_target_osarch=arm64 -s -j4
i386
make iphone_sdk_version_min=5.0 poco_target_osarch=i386 -s -j4
x86_64
make iphone_sdk_version_min=5.0 poco_target_osarch=x86_64 -s -j4
lipo

為了使用方便,我們可以製作通用庫檔案,使用xcode的lipo命令:

lipo -create 需要合併的檔案 -output 生成的目標檔案

eg.lipo -create iphoneos/armv7/libpocofoundation.a iphonesimulator/x86_64/armv7/libpocofoundation.a -output libpocofoundation.a

檢視靜態庫支援的架構

lipo -info ***x.a
備註
--config   配置編譯指令碼,由於xcode的c和c++編譯器是clang和clang++,因此選擇iphone-clang-libc++指令碼

-no-tests和--no-samples  表示不編譯tests檔案和samples檔案

--omit 在這裡面配置自己不需要的庫檔案

--include-path  用來配置依賴資訊,在這裡,由於crypto和netssl_openssl模組依賴於openssl,因此需要配置openssl的路徑

--static  表示建立靜態庫檔案

--prefix 配置編譯好的庫檔案的存放位置

iphone_sdk_version_min  設定支援的iphone的sdk的最低版本

poco_target_osarch 設定平台的架構資訊

mac os上編譯安裝nginx php

2.編譯安裝nginx,先現在zlib和pcre 4.先安裝mysql 選擇 為了在編譯php時,先把mysql編譯進去,省的以後為擴充套件編譯mysql 5.在 etc profile中加入如下環境變數 vi etc profile export path usr local mysql bin ...

vs2008編譯安裝poco庫

我的vs2008安裝在 d program files microsoft visual studio 9.0 poco解壓後目錄 d poco 1.4.6p2 2 編譯庫檔案。開始選單 microsoft visual studio 2008 visual studio tools open vi...

Poco 自動全編譯的方法

以 vs2008 為例 poco 根目錄下有 build vs90.cmd buildwin.cmd 這兩個批處理檔案,我們得修改一下它們 把build vs90.cmd 修改為以下內容 echo off if defined vs90comntools call vs90comntools vsv...