对核心数据模型进行微小更改后的链接器错误
Posted
技术标签:
【中文标题】对核心数据模型进行微小更改后的链接器错误【英文标题】:Linker error after making minor change to Core Data model 【发布时间】:2015-02-09 02:28:00 【问题描述】:在通过 CocoaPods 添加 MagicalRecord(我第一次使用 CocoaPods)后,我开始了一个构建良好的新项目。
在构建我的数据模型之后,我收到一条错误消息,告诉我我没有在两个实体之间包含预期的反向关系。我进入数据模型并纠正了这个问题,现在我在重建时收到了这个错误:
Ld /Users/myName/Library/Developer/Xcode/DerivedData/ProjectName-ewvswzrvrwxktphioghlirgkuyju/Build/Products/Debug-iphonesimulator/ProjectName.app/ProjectName normal x86_64
cd "/Users/myName/Desktop/Everything from DT 1:20:15/App projects/WMMG/ProjectName"
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/myName/Library/Developer/Xcode/DerivedData/ProjectName-ewvswzrvrwxktphioghlirgkuyju/Build/Products/Debug-iphonesimulator -F/Users/myName/Library/Developer/Xcode/DerivedData/ProjectName-ewvswzrvrwxktphioghlirgkuyju/Build/Products/Debug-iphonesimulator -filelist /Users/myName/Library/Developer/Xcode/DerivedData/ProjectName-ewvswzrvrwxktphioghlirgkuyju/Build/Intermediates/ProjectName.build/Debug-iphonesimulator/ProjectName.build/Objects-normal/x86_64/ProjectName.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lPods-MagicalRecord -framework CoreData -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=8.1 -lPods -Xlinker -dependency_info -Xlinker /Users/myName/Library/Developer/Xcode/DerivedData/ProjectName-ewvswzrvrwxktphioghlirgkuyju/Build/Intermediates/ProjectName.build/Debug-iphonesimulator/ProjectName.build/Objects-normal/x86_64/ProjectName_dependency_info.dat -o /Users/myName/Library/Developer/Xcode/DerivedData/ProjectName-ewvswzrvrwxktphioghlirgkuyju/Build/Products/Debug-iphonesimulator/ProjectName.app/ProjectName
ld: library not found for -lPods-MagicalRecord
clang: error: linker command failed with exit code 1 (use -v to see invocation)
该错误似乎明确指出链接器和 pod 存在问题。问题是我没有调试链接器问题的经验,当我发现对类似问题的引用开始谈论“依赖关系”等时,我感到非常不适应。显然没有找到 MagicalRecord 库,但我不知道我所做的更改可能是如何导致问题的,更不确定如何纠正它。
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:Core Data 会触发这个很奇怪。要解决链接问题,请尝试输入 pod install
(首先 cd 到包含项目工作区的文件夹)。
【讨论】:
刚试了一下,然后退出Xcode,再次启动项目,清理,构建,收到同样的错误信息。 是否也尝试擦除 DerivedData 文件夹?您打开的是 xcworkspace 而不是 xcproject,对吧? 呃,没有。我从 Xcode 启动窗口打开了项目。我应该改为从 finder 打开工作区吗? 好的,我刚刚关闭了项目并打开了工作区。它构建时没有错误,但有 14 个未声明的选择器警告,以前没有,全部来自 3 个 MagicalRecord 文件。 使用 Cocoapods 时,总是使用 xcworkspace。这将同时引入您自己的项目和 pod(它们都是工作区中的子项目)。我很高兴它正在建设中!以上是关于对核心数据模型进行微小更改后的链接器错误的主要内容,如果未能解决你的问题,请参考以下文章