Xcode4链接问题.文件是为存档而构建的,而不是被链接的架构(arm6)

Seu*_*oon 51 iphone static-linking xcode4

最近,我切换到Xcode4,当我编译我的项目时,我得到了以下错误.

ld: warning: ignoring file /Users/myname/Library/Developer/Xcode/DerivedData/appname-hezrgyqimckztgbdlslkavphdclw/Build/Products/Debug-iphoneos/libTapkuLibrary.a, file was built for archive which is not the architecture being linked (armv6)
Undefined symbols for architecture armv6:
  "_OBJC_CLASS_$_TKLoadingView", referenced from:
      objc-class-ref in RootViewController.o
Run Code Online (Sandbox Code Playgroud)

我打开了TapkuLibrary并检查它的架构设置为'Standard(armv6 armv7)'.

我该怎么做才能解决这个问题?

Seu*_*oon 111

我弄清楚是什么导致了这个问题.我将TapkuLibrary的'Build Active Architecture'从Yes改为No,它编译没有任何问题.

  • 哎呀,我从是改为否. (2认同)
  • 我是否应该假设,如果我有一个有这个问题的第三方库,如果我无法重新编译库,我无法自行修复它? (2认同)

Jos*_*own 35

通过与接受的答案相反,我能够解决这个问题- 我将'仅建立活动架构'从NO更改为YES.


Zar*_*aki 11

有同样的问题.但我认为原因不同.我正在使用为模拟器构建的library.a文件并尝试在设备上运行它.我知道我需要不同的.a文件用于模拟器和设备.我希望这可以帮助别人 ;)

例如,这里我为设备和模拟器导入了不同的库文件


son*_*hin 11

当我将XCode升级到4.5并将iOS升级到iOS6时,我遇到了这个问题.对于GMGridView,它刚刚发生.不适用于模拟器,仅适用于设备.

我通过以下步骤解决了这个问题:1)转到GMGridView项目 - >构建设置2)在设置 - >架构下,选择"标准(armv7,armv7s)"

然后清除所有(包括DerivedData)并重建.

希望能帮助到你!


Mac*_*ade 6

尝试删除armv6架构,并仅为armv7编译它.

  • 这也解决了问题,但我不想将我的应用程序限制为支持armv7的新设备.谢谢! (3认同)