Xcode链接错:ld: bad codegen, pointer diff

 链接库的时候出现错误:

ld: bad codegen, pointer diff in ServerWebEx::InitWeb() to global weak symbol vtable for XPlayerLib::Delegatefor architecture armv6
collect2: ld returned 1 exit status

如图所示:

private-extern

 

  1. 从表面上看,是调用的XPlayerLib::Delegate这个类出了问题。
  2. 搜索stackoverflow。
  3. 照猫画虎,添加了GCC_SYMBOLS_PRIVATE_EXTERN符号后重新编译了XPlayerLib库:xcodebuild -project GLXPlayerCppLib.xcodeproj -sdk iphoneos -configuration Release -target GLXPlayerCppLib GCC_SYMBOLS_PRIVATE_EXTERN=YES
  4. 重新链接,问题解决。

其实,完全可以在Xcode里直接设置Symbols Hidden by Default为YES。但是我的Xcode 3.2.6有问题,在Code Generation里找不到这一项。无奈之下只好用命令行来编了。

你可能感兴趣的:(xcode,gcc,generation)