2010-04-09 35 views
0

我試圖編譯x264以在iPhone應用程序中使用。我看到有關於如何在此平臺上編譯ffmpeg的說明:http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-October/076618.html,但我似乎無法找到在iPhone上編譯x264的完整內容。我發現這個源代碼樹:http://gitorious.org/x264-arm似乎支持ARM平臺。試圖爲iPhone編譯x264和ffmpeg - 「在文件中缺少必需的架構臂」

這裏是我的配置行:

 
./configure --cross-prefix=/usr/bin/ --host=arm-apple-darwin10 --extra-cflags="-B /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/ -I /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/" 

...和內部configure我使用的氣體預處理腳本(上面的第一個鏈接)作爲我的彙編:

 
gas-preprocessor.pl gcc 

當我開始編譯,它大塊一會兒,然後它吐出這些警告和一個巨大的未定義符號列表:

 
ld: warning: option -s is obsolete and being ignored 
ld: warning: -force_cpusubtype_ALL will become unsupported for ARM architectures 
ld: warning: in /usr/lib/crt1.o, missing required architecture arm in file 
ld: warning: in /usr/X11R6/lib/libX11.dylib, missing required architecture arm in file 
ld: warning: in /usr/lib/libm.dylib, missing required architecture arm in file 
ld: warning: in /usr/lib/libpthread.dylib, missing required architecture arm in file 
ld: warning: in /usr/lib/libgcc_s.1.dylib, missing required architecture arm in file 
ld: warning: in /usr/lib/libSystem.dylib, missing required architecture arm in file 
Undefined symbols: 

我的猜測是這個問題與「文件中缺少必需的架構臂」警告有關嗎?有什麼想法?

回答

1

許多開發人員在轉換到XCode 4.3之後遇到了編譯FFMpeg源的問題。這主要是由於這樣一個事實,即與以前的版本不同,XCode4.3是一個捆綁包,並且最初不包含命令行工具。

我們嘗試構建通用腳本;您可以下載完整的環境與XCode4.3這裏沿着建設FFmpeg的:https://github.com/melnikov/ffmpeg4iphone_4.3

先決條件:

  1. 你必須有你的Mac上安裝了XCode4.2或4.3
  2. 你必須要有的XCode命令行工具已安裝(可通過XCode - > Preferences - > Downloads進行安裝)
  3. 你必須安裝用於mac的git。

說明和解釋:

  1. 地方構建腳本到某些目錄(比如,/ tmp目錄/ ffbuild)就可以了,設置可執行標誌(運行「使用chmod + X ./build)
  2. 運行腳本。它的作用:
  3. 將簽出最新版本的ffmpeg到FFmpeg的目錄(你可以放心地評論了這一點,如果你已經簽出的FFmpeg到當前目錄)
  4. 它會嘗試檢測您的Xcode的位置。如果未安裝Xcode,將退出
  5. 它將嘗試在Xcode中查找gcc。應用程序,並會退出,如果它沒有找到(如果沒有安裝的Xcode命令工具可能出現這種情況)
  6. 如果以上步驟運行平穩,腳本將
  7. 創建build_results文件夾
  8. 將隨後運行FFmpeg的配置,併爲3不同的體系結構(armv6,armv7,i386)並將它們放入build_results文件夾內的相應目錄中
  9. 將運行lipo並創建通用庫(並將它們放入build_results/Universal中)文件夾。

順便說一句,我已經測試了一些我的同事的mac上的腳本,其中一些往往不會返回mdfind中的任何結果爲Xcode.app。因此,如果腳本將返回'Xcode未安裝',請隨時將XCODEPATH變量設置爲Xcode.app的路徑。

+0

再次,我已將您的博文的內容移至您的答案中,以使其更容易供人們參考,更能抵抗腐敗。 – 2012-08-04 19:31:05

+0

謝謝你,布拉德 - 我想這會容易得多! – StexGroup 2012-08-07 09:32:56