2013-03-18 67 views
1

我試圖編譯FFmpeg的針對iOS(對於iPhone5的,爲了做一些RSTP流的東西)以下的tutorial here但我卡住與此錯誤:無法編譯的ffmpeg的iOS

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc is unable to create an executable file. 
C compiler test failed. 

在我的config.log文件,我有這樣的:

BEGIN /var/folders/9g/zv_vdz7x16g1hgx9pqj57zz80000gn/T//ffconf.D3a73otQ.c 
     1 int main(void){ return 0; } 
END /var/folders/9g/zv_vdz7x16g1hgx9pqj57zz80000gn/T//ffconf.D3a73otQ.c 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -arch armv7 -mfpu=neon -miphoneos-version-min=6.0 -mcpu=cortex-a9 -c -o /var/folders/9g/zv_vdz7x16g1hgx9pqj57zz80000gn/T//ffconf.Wv4eZtHX.o /var/folders/9g/zv_vdz7x16g1hgx9pqj57zz80000gn/T//ffconf.D3a73otQ.c 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -miphoneos-version-min=6.0 --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -o /var/folders/9g/zv_vdz7x16g1hgx9pqj57zz80000gn/T//ffconf.y84bbrJt /var/folders/9g/zv_vdz7x16g1hgx9pqj57zz80000gn/T//ffconf.Wv4eZtHX.o 
ld: library not found for -lcrt1.3.1.o 
collect2: ld returned 1 exit status 
C compiler test failed. 

我已經在計算器或與谷歌

任何想法,找到了其他腳本其他錯誤?


好(我在Mac環境還挺新),我設法通過SDK目標固定到最後的SDK我有(6.1)通過配置階段,除去其它鏈接器標記,但隨後的「使「命令是充滿了錯誤的(無論是用gcc或臂蘋果darwin10-GCC-4.2):

In file included from ./libavutil/internal.h:113, 
       from ./libavutil/common.h:385, 
       from ./libavutil/avutil.h:238, 
       from libavdevice/version.h:28, 
       from libavdevice/avdevice.h:22, 
       from libavdevice/alldevices.c:22: 
./libavutil/libm.h:53: error: static declaration of ‘cbrt’ follows non-static declaration 
./libavutil/libm.h:60: error: static declaration of ‘cbrtf’ follows non-static declaration 
./libavutil/libm.h:86: error: expected identifier or ‘(’ before ‘sizeof’ 
./libavutil/libm.h:96: error: expected identifier or ‘(’ before ‘sizeof’ 
./libavutil/libm.h:142: error: static declaration of ‘rint’ follows non-static declaration 
./libavutil/libm.h:149: error: static declaration of ‘lrint’ follows non-static declaration 
./libavutil/libm.h:156: error: static declaration of ‘lrintf’ follows non-static declaration 
./libavutil/libm.h:163: error: static declaration of ‘round’ follows non-static declaration 
./libavutil/libm.h:170: error: static declaration of ‘roundf’ follows non-static declaration 
./libavutil/libm.h:177: error: static declaration of ‘trunc’ follows non-static declaration 
./libavutil/libm.h:184: error: static declaration of ‘truncf’ follows non-static declaration 
make: *** [libavdevice/alldevices.o] Error 1 
+0

我注意到工作項目中沒有設置**其他鏈接器標誌**,而我的非工作項目設置了'-arch i386'。我刪除了它,它似乎已修復它。如果問題未解決,則在靜態庫和主項目的項目設置中取消選中** Compile for Thumb **。 – 2013-03-18 11:15:26

回答

1
./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-cross-compile --arch=arm --target-os=darwin --cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='/usr/local/bin/gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk --cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk' --enable-pic --enable-decoder=rawvideo --disable-asm 

你還必須關心像路徑」 --as =在/ usr /本地/ bin/gas-preprocessor.pl「或」.../SDKs/iPhoneOS6.1.sdk「並將它們調整爲您自己的路徑/ SDK