2011-09-06 39 views
1

我想創建一個(非xcode)makefile來創建一個可導入到XCode項目中的胖庫(模擬器+設備)使用直接調用基本命令行工具的makefile(不是從命令行運行XCODE,而是運行MAC Gcc及其相關實用程序) - 這是針對.m,.mm,.c和.cpp源文件的。我想知道如何爲iOS的「胖」庫製作makefile文件

理想的做法是找到一個簡單的庫(不通過調用makefile生成器,使得幾乎無人類可讀的makefile)

反正誰知道這樣的事情或適當的機制,爲做好該工作的例子相同?

也從一個XCode項目提取編譯標誌的能力將是真正的得心應手:)

的目的是我想一個模塊添加到我的跨平臺庫,這樣我就可以將它們集成到一個iOS的項目。

謝謝!

+0

不知道它是否對您有幫助,但應該有一個叫做lipo的cmd工具,它可以創建脂肪庫。 – bryanmac

+0

當搜索到LIPO和makefile時,我發現這個鏈接:http://graphics.stanford.edu/courses/cs148-10-summer/resources/Makefile.osx – bryanmac

回答

1

您可以通過查看構建細節來提取編譯器標誌,或者更簡單地說,從命令行運行xcodebuild

要創建一個胖二進制,你要麼趁編譯器工具鏈的內置在Mac OS X平臺上支持通過將多個-arch參數,就像這樣:

clang -arch i386 -arch x86_64 -framework Foundation simple.m -o simple 

或者,你建爲每個期望的架構二進制一次,然後使用lipo將所有這些二進制文件包裝爲單個胖二進制文件。使用移植的Unix軟件時,這非常方便;只需每次更改構建結果目錄,然後在與lipo構建後一起粉碎它們。假設你有simple-i386simple-x86_64,你會然後做:

lipo simple-i386 simple-x86_64 -create -output simple 

這將創建一個名爲simple脂肪二元含simple-i386simple-x86_64

+0

這對於修改不同設置的makefile是非常有幫助的,有沒有例如,在那裏有一個完整的makefile文件,它將從源代碼,鏈接編譯,並使無runco​​de(通過模擬器或部署)沒有XCode的「hello world」? – peterk

+0

我無法在xcode 4.0.2上找到「構建細節」,也無法在任何地方找到對其的引用 - 只有一個「日誌」已經從中刪除了詳細信息。 – peterk

+0

@peterk:從命令行運行'xcodebuild'並檢查輸出。 –

0

好了 - 我發現這是一個偉大的HOWTO o使用XCODE,概述過程構建脂肪庫以及如何創建項目

http://blog.boreal-kiss.net/2011/03/15/how-to-create-universal-static-libraries-on-xcode-4/

是一個新手,Xcode和iOS開發我有發現一些事情。

  • 您可以查看構建的實際命令行輸出以查看gcc標誌是什麼。 查看 - > Navigators->登錄 - 然後控制點擊消息列表「擴展所有成績單」 看到從所選擇的構建的構建輸出什麼輸出和錯誤。

  • 您可以通過使用命令和參數作爲登錄shell來執行.bashrc和.bash_profile環境設置的「外部構建工具」:「bash --login -c'mybuildtool [my tools args] $(ACTION )',因此繞過不得不處理難以維護的MacOSX啓動設置等等,這對於使用紅寶石和耙子以及製作等工作起到了作用。