2013-11-01 101 views
9

我得到这个错误,当我试图在我的设备上运行它,但它工作正常,当我在模拟器上运行它。这是一个工具链错误还是SDK头错误?以下是编译时获得的错误消息。xcode的图书馆没有找到-lobjc

错误消息:

Ld /Users/KhangYu/Library/Developer/Xcode/DerivedData/mobiletimetec-bbuzqjqgmijmomgdmvebkbyasqii/Build/Intermediates/mobiletimetec.build/Debug-iphoneos/mobiletimetec.build/Objects-normal/armv7/mobiletimetec normal armv7 
    cd /Users/KhangYu/Desktop/KPTesting/setting 
    setenv IPHONEOS_DEPLOYMENT_TARGET 6.1 
    setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/KhangYu/Library/Developer/Xcode/DerivedData/mobiletimetec-bbuzqjqgmijmomgdmvebkbyasqii/Build/Products/Debug-iphoneos -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/lib/system -F/Users/KhangYu/Library/Developer/Xcode/DerivedData/mobiletimetec-bbuzqjqgmijmomgdmvebkbyasqii/Build/Products/Debug-iphoneos -F/Applications/Xcode.app/Contents/Developer/Library/Frameworks -filelist /Users/KhangYu/Library/Developer/Xcode/DerivedData/mobiletimetec-bbuzqjqgmijmomgdmvebkbyasqii/Build/Intermediates/mobiletimetec.build/Debug-iphoneos/mobiletimetec.build/Objects-normal/armv7/mobiletimetec.LinkFileList -dead_strip -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=6.1 -framework SystemConfiguration -framework AVFoundation -lsqlite3.0 -framework MapKit -framework CoreLocation -framework MessageUI -framework QuartzCore -framework Security -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/KhangYu/Library/Developer/Xcode/DerivedData/mobiletimetec-bbuzqjqgmijmomgdmvebkbyasqii/Build/Intermediates/mobiletimetec.build/Debug-iphoneos/mobiletimetec.build/Objects-normal/armv7/mobiletimetec 

ld: library not found for -lobjc 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

// - 完 -

这将是我的死亡。任何想法如何解决它?对你的帮助表示感谢。

在此先感谢。

解决方案

感谢凯文和碧玉蓝调答复,也感谢里诺·琼斯编辑自己的帖子。 经过数小时的尝试解决此问题后,我将文件“libobjc.A.dylib”重命名为“libobjc.dylib”,并且错误消失。 P/S: “libobjc.A.dylib” - 位于/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer再次/软件开发工具包/ */usr/lib中/,感谢Kevin。

+1

这是一个缺少库,工具链误差和SDK头之间的那种。 – Kevin

+0

您使用的是什么SDK?运行'ls /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ */usr/lib/libobjc *'并告诉我们它显示的是什么。 – Kevin

+0

您的“解决方案”完全适用于Xcode 6: 我复制了'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libobjc.A.dylib ''到/应用/ Xcode.app /内容/开发/平台/ iPhoneOS.platform /开发商/软件开发工具包/ iPhoneOS.sdk/usr/lib目录/ libobjc.dylib' ... 我不明白的是..为什么? –

回答

5

我的猜测是,它在模拟器上,而不是因为你指定单独的“其它链接器标记”两个“调试”和“发布”配置设备。你通常会做,如果你在一个调试的框架连接,如“显示”,“DCIntrospect”等

的一个“释放”看起来是不正确的。它应该是'-Objc'而不是'-lObjc' - 我们告诉编译器我们正在使用Objective-C本身,而不是加载一个名为'Objc'的库。

要纠正:

  • 在Xcode中,单击目标为您的应用。
  • 打开“构建设置”选项卡。
  • 搜索'其他链接器标志' - 所以你不会被选项压倒。
  • 更正'Release'配置。改变 '-lObjc' 到 '-ObjC'

flags

+0

请参阅“解决方案”下的解决方案 –

+0

该问题永远不会变成第二性质,因为它很可能与您的二进制文件链接到的某个库有关。所以它不在Build Settings中。 –

1

没有必要重命名 “libobjc.A.dylib”,只需重新连接到想:LN -s ./libobjc.A名为.dylib ./libobjc.dylib

+0

这也可以,但我想知道为什么这是所有必要的 –