Live555编译为iOS构建错误

我正在尝试为iOS编译Live555。

我做了以下事情:

./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) ... 

我有什么想法我做错了吗?

在运行“genMakefiles iphoneos”之前更改config.iphoneos的LINK_OPTS。 它适用于iOS 5.1 SDK和iOS 6 SDK beta。

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

我只是改变了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 

它成功编译。

我认为你必须修改--isysroot-isysroot