2012-07-06 78 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 

它编译成功。