我遇到了一个框架链接问题,几天来都无法解决。
这就是我正在做的事情:
在 Xcode 5.0.2 中,我创建了一个新的 Framework 项目。我删除了随项目创建的默认目标、与它们关联的文件以及相关方案(因为我想创建自己的方案)。
我创建一个新的框架目标,给它一些名称,比如“Test1”,删除默认的 header 和实现文件,并向其中添加一个新协议(protocol)。我构建它,只是为了检查,一切都很顺利。
我创建另一个框架目标,给它另一个名称,比如“Test2”,删除默认头文件和实现文件,并向其中添加一个新类。
从 Test2 build设置中,我链接到 Test1。我尝试构建但它失败了:
ld: framework not found Test1 clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果我不包含 Test1 框架,它会按预期成功构建(框架不包含在任何文件中,仅包含在build设置中)。
尝试过清理和重建、手动删除文件、从设置中删除框架、库和头路径、重新启动 Xcode(甚至计算机)以及其他一些我不记得的东西,但无济于事。还尝试了其他 SO 答案的一些建议,但仍然没有运气。
如果有人知道发生了什么,我将不胜感激。
谢谢。
编辑:Here is a link to an archive with a test project created to demonstrate the above problem.此后,我也将“Target 1”框架添加到了 Target 2 的依赖项中。
最佳答案
您需要将目标 2 设置为目标 1 作为依赖项。为此,请打开 Target 2“构建阶段” Pane 。旋转打开“目标依赖项”。单击“+”按钮添加依赖项,当工作表出现时,选择“目标 1”。
完成此操作后,每次构建目标 2 时,都会确保目标 1 已构建并位于正确的链接位置。
关于Xcode 5 链接到同一项目中的框架时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20217635/