为什么找不到静态库头?

Fel*_*xyz 5 iphone xcode gcc xcodebuild static-libraries

我使用了Clint Harris的教程来设置项目之间的代码共享,一切都在我的计算机上正常工作.但是在我的同事的机器上,似乎编译器在构建时没有从静态库项目中找到头文件.

我的同事通过克隆git存储库来获得我的项目.我们经历了所有相关的构建标志和XCode设置n次,但项目只是拒绝在他的机器上编译.

这就是我要求我的同事做的事情,主要是从教程中复制和粘贴:

  1. 确保项目目录的完整路径中没有空格.
  2. 在projects目录中,创建另一个名为"build_output"的文件夹.
  3. 在XCode中,在"XCode>首选项"下,选择"构建"选项卡并将"将构建项目放置"到"自定义位置",并指定您创建的公共构建目录的路径.
  4. 将"放置中间构建文件"设置为"使用构建产品".
  5. 选择"源树"选项卡,然后通过单击"+"按钮并填写列来创建新的源树变量.在"设置名称"和"显示名称"中,输入[创建静态库的共享项目的名称].在路径中,您将完整路径放在框架文件夹中.

按照这些步骤,使用静态库的项目应该在他的机器上编译与我的相同.但事实并非如此.基本上,他得到的错误是:

error: TheFrameworkHeader.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后是由缺少的标题引起的一串其他错误.

有什么策略可以解决这个问题吗?或者任何有类似经历并且可以分享一些来之不易的知识的人?我总结的说明中是否有任何遗漏?编译静态库时,是否需要在"复制标头"构建阶段设置标头的角色?

Fel*_*xyz 8

尽管有一些有用的建议,我从来没有想过这个,但这里有一个类似情况的人的一点信息.我通过将原始项目拆分为两个来创建库和依赖项目.起初,库和应用程序只是同一项目中的两个目标.后来,我将应用程序移动到一个单独的项目中.一切似乎都有效,我将两个项目推送到远程git存储库.但是,当这些克隆在其他计算机上时,找不到库头.

后来,我发现当我在原始计算机上克隆项目时发生了同样的错误.经过大量的努力,我将其归结为一个可怕的细节:依赖项目文件夹的名称!(即,带有应用程序的项目,而不是库.)不是.xcodeproject包的名称,不是应用程序标识符,而是包含文件夹的名称.一改变,一切正常.如果我将其更改回原始名称(在任何计算机上),则再次找不到标题.

如果有人对此有任何见解,请发表回答!

编辑:由于我发布了这个,同样的问题发生在另一个项目,再次,只是重命名包含.xcodeproject文件夹的文件夹修复了问题.