【问题标题】:clang: error: unsupported option '--ObjC'铿锵声:错误:不支持的选项'--ObjC'
【发布时间】:2014-12-14 23:13:51
【问题描述】:

由于某种原因,当我将“--ObjC”添加到我的 Xcode 项目中的其他链接器标志时,我遇到了链接器错误。如果我删除此标志,我将无法加载我的表视图之一并收到以下错误:

*** Assertion failure in -[AMTableView _configureCellForDisplay:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-3318.16.14/UITableView.m:7344
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'

我是否认为这是由于缺少 --ObjC 造成的?

因此,当我重新添加标志时(实际上是使用 -$(inherited) 将其拉入,因为 cocoapods 告诉我将其引入),我收到链接器错误:

Ld /Users/jimmy/Library/Developer/Xcode/DerivedData/AptTin-anlnlphskgbkbydlukhsoqjapwpl/Build/Products/Debug-iphonesimulator/myapp.app/myapp normal x86_64
    cd /Users/jimmy/Desktop/AptTin
    export IPHONEOS_DEPLOYMENT_TARGET=8.1
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.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 x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk -L/Users/jimmy/Library/Developer/Xcode/DerivedData/AptTin-anlnlphskgbkbydlukhsoqjapwpl/Build/Products/Debug-iphonesimulator -F/Users/jimmy/Library/Developer/Xcode/DerivedData/AptTin-anlnlphskgbkbydlukhsoqjapwpl/Build/Products/Debug-iphonesimulator -F/Users/jimmy/Desktop/AptTin -filelist /Users/jimmy/Library/Developer/Xcode/DerivedData/AptTin-anlnlphskgbkbydlukhsoqjapwpl/Build/Intermediates/AptTin.build/Debug-iphonesimulator/AptTin.build/Objects-normal/x86_64/myapp.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 --ObjC -lPods-AFNetworking -lPods-AMSlideOutController -lPods-DACircularProgress -lPods-HexColors -lPods-LBBlurredImage -lPods-MBProgressHUD -lPods-MWPhotoBrowser -lPods-PSTCollectionView -lPods-SDWebImage -lPods-TSMessages -framework Accelerate -framework AssetsLibrary -framework CoreGraphics -framework ImageIO -framework MapKit -framework MessageUI -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -framework UIKit -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=8.1 -framework MobileCoreServices -framework Security -framework CoreLocation -framework SystemConfiguration -framework AssetsLibrary -framework MessageUI -framework ImageIO -framework CoreData -framework MapKit -framework QuartzCore -framework Crashlytics -framework CoreGraphics -framework FacebookSDK -framework UIKit -framework Foundation -lPods -Xlinker -dependency_info -Xlinker /Users/jimmy/Library/Developer/Xcode/DerivedData/AptTin-anlnlphskgbkbydlukhsoqjapwpl/Build/Intermediates/AptTin.build/Debug-iphonesimulator/AptTin.build/Objects-normal/x86_64/myapp_dependency_info.dat -o /Users/jimmy/Library/Developer/Xcode/DerivedData/AptTin-anlnlphskgbkbydlukhsoqjapwpl/Build/Products/Debug-iphonesimulator/myapp.app/myapp

clang: error: unsupported option '--ObjC'

我错过了什么? --ObjC 标志到底发生了什么?

【问题讨论】:

  • 您是使用 cocoapods 启动项目还是将 cocoapods 集成到现有项目中?
  • 我通过在我的目录中创建一个 podfile 并执行 pod install 来添加 cocoapods

标签: ios xcode


【解决方案1】:

问题是链接器标志的拼写错误。我刚刚签入了我的项目,它应该是带有一个破折号的“-ObjC”,而不是两个。
以下是有关该标志的其他信息:
https://developer.apple.com/library/ios/qa/qa1490/_index.html
这是来自 Apple 的描述:

将 -ObjC 选项传递给链接器会导致它加载所有成员 实现任何 Objective-C 类或类别的静态库。 这将拾取任何类别方法实现。但它可以使 生成的可执行文件更大,并且可能会拾取不必要的对象。 因此默认情况下它是不开启的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多