2012-07-06 104 views
2

我正在嘗試爲iOS編譯Live555。Live555爲iOS編譯構建錯誤

我也做了以下內容:

./genMakefiles iphoneos 
make 

我得到以下編譯錯誤:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -c -I../UsageEnvironment/include -I../groupsock/include -I../liveMedia/include -I../BasicUsageEnvironment/include -I. -DBSD=1 -O2 -DSOCKLEN_T=socklen_t -DHAVE_SOCKADDR_LEN=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -fPIC -arch armv7 --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk -Wall testMP3Streamer.cpp 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -o testMP3Streamer -L. -arch armv7 --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk testMP3Streamer.o ../liveMedia/libliveMedia.a ../groupsock/libgroupsock.a ../BasicUsageEnvironment/libBasicUsageEnvironment.a ../UsageEnvironment/libUsageEnvironment.a 
ld: in /usr/lib/system/libcache.dylib, missing required architecture armv7 in file for architecture armv7 
collect2: ld returned 1 exit status 
make[1]: *** [testMP3Streamer] Error 1 
make: *** [all] Error 2 

我試圖改變以及在config.iphoneos連接選項,以這樣的:

LINK_OPTS =    -L. -arch armv7 --isysroot=$(SDK) 

當我更改鏈接器選項時,出現以下錯誤:

cd testProgs ; make 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -c -I../UsageEnvironment/include -I../groupsock/include -I../liveMedia/include -I../BasicUsageEnvironment/include -I. -DBSD=1 -O2 -DSOCKLEN_T=socklen_t -DHAVE_SOCKADDR_LEN=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -fPIC -arch armv7 --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk -Wall testMP3Streamer.cpp 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -o testMP3Streamer -L. -arch armv7 --isysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk testMP3Streamer.o ../liveMedia/libliveMedia.a ../groupsock/libgroupsock.a ../BasicUsageEnvironment/libBasicUsageEnvironment.a ../UsageEnvironment/libUsageEnvironment.a 
ld: warning: ignoring file /usr/lib/crt1.o, missing required architecture armv7 in file 
ld: warning: ignoring file /usr/lib/libstdc++.dylib, missing required architecture armv7 in file 
ld: warning: ignoring file /usr/lib/libgcc_s.1.dylib, missing required architecture armv7 in file 
ld: warning: ignoring file /usr/lib/libSystem.dylib, missing required architecture armv7 in file 
Undefined symbols for architecture armv7: 
    "start", referenced from: 
    -u command line option 
    (maybe you meant: RTPInterface::startNetworkReading(void (*)(void*, int)), MediaSink::startPlaying(MediaSource&, void (*)(void*), void*)) 
    "_exit", referenced from: 
     play() in testMP3Streamer.o 
    "operator new(unsigned long)", referenced from: 
     _main in testMP3Streamer.o 
     MP3FileSource::MP3FileSource(UsageEnvironment&, __sFILE*)in libliveMedia.a(MP3FileSource.o) 
     MP3FileSource::MP3FileSource(UsageEnvironment&, __sFILE*)in libliveMedia.a(MP3FileSource.o) 
     MP3FileSource::createNew(UsageEnvironment&, char const*)in libliveMedia.a(MP3FileSource.o) 
     _Tables::getOurTables(UsageEnvironment&, unsigned char)in libliveMedia.a(Media.o) 
     MediaLookupTable::remove(char const*)in libliveMedia.a(Media.o) 
     MediaLookupTable::ourMedia(UsageEnvironment&)  in libliveMedia.a(Media.o) 
     ... 

任何想法我做錯了什麼?

+0

你可以共享完整的配置文件'config.iphoneos' - 得到同樣的問題,但建議修復不起作用 – gbk 2015-04-06 06:27:57

回答

2

變化LINK_OPTS。它適用於iOS 5.1 SDK和iOS 6 SDK測試版。

LINK_OPTS =    -L. -arch armv7 --sysroot=$(SDK) -L$(SDK)/usr/lib/system 
+0

哈工作,謝謝 – slim 2012-09-06 23:25:07

0

我想你必須在運行 「genMakefiles的iPhoneOS」 之前修改config.iphoneos的--isysroot-isysroot

2

我只是改變了compile.iphoneos:

IOS_VERSION =  5.1 
LINK_OPTS =     -L. ..... 

IOS_VERSION =  6.0 
LINK_OPTS =    -L. -arch armv7 --sysroot=$(SDK) -L$(SDK)/usr/lib/system 

它編譯成功。