9

当我尝试在我的设备上运行它时出现此错误,但是当我在模拟器上运行它时它工作正常。这是工具链错误还是 SDK 标头错误?以下是我在编译时收到的错误消息。

错误信息:

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)

// - 结尾 -

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

提前致谢。

解决方案

感谢 Kevin 和 Jasper Blues 的回复,也感谢 Reno Jones 编辑我的帖子。经过数小时的尝试解决此问题,我将文件“libobjc.A.dylib”重命名为“libobjc.dylib”,错误消失了。P/S:“libobjc.A.dylib” - 位于 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer‌​/SDKs/*/usr/lib/,再次感谢 Kevin。

4

2 回答 2

5

我的猜测是它适用于模拟器,但不适用于设备,因为您为“调试”和“发布”配置指定了单独的“其他链接器标志”。如果您在调试框架(例如“Reveal”、“DCIntrospect”等)中链接,通常会这样做。

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

纠正:

  • 在 Xcode 中,单击应用程序的目标。
  • 打开“构建设置”选项卡。
  • 搜索“其他链接器标志”——这样您就不会被选项所淹没。
  • 更正“发布”配置。将“-lObjc”更改为“-Objc”

旗帜

于 2013-11-01T04:33:40.687 回答
1

无需重命名“libobjc.A.dylib”,只需重新链接它:ln -s ./libobjc.A.dylib ./libobjc.dylib

于 2014-07-23T09:13:33.687 回答