【问题标题】:Live555 compile for iOS build errorLive555 编译 iOS 构建错误
【发布时间】:2012-07-06 21:33:55
【问题描述】:

我正在尝试为 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)
      ...

任何想法我做错了什么?

【问题讨论】:

  • 你能分享完整的配置文件config.iphoneos - 遇到同样的问题,但建议修复无济于事

标签: ios live555


【解决方案1】:

在运行“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

【讨论】:

    【解决方案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
    

    它编译成功。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-10
        • 2013-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-20
        相关资源
        最近更新 更多