为什么静态库头没有发现?(Why are static library headers not fo

2019-07-29 19:48发布

我用克林特·哈里斯的教程设置项目之间的代码共享,并一切正常,就像预期我的电脑上。 但我的同事的机器上,似乎在他建立的编译器未找到从静态库项目的头文件。

我的同事通过克隆一个Git仓库了我的项目。 我们已经通过所有相关的建设的标志和XCode中设置了N次了,但这个项目只是拒绝编译他的机器上。

这是我问我的同事做的,主要是复制和教程贴:

  1. 请确保在完成道路项目目录中没有空格。
  2. 里面的项目目录,创建一个名为“build_output”另一个文件夹。
  3. 在Xcode中,“的XCode>首选项‘下选择’构建”选项卡,并设置‘广场建设项目’到‘自定义位置’并指定路径创建共同构建目录。
  4. 设置“放置中间编译文件中”到“打造产品。”
  5. 选择“源树”选项卡,然后通过点击“+”按钮,填写列创建一个新的源代码树的变量。 在这两种“设置名称”和“显示名称”,把[从而创立了静态库共享项目的名称。 在路径,你把完整路径框架文件夹。

按照这些步骤,使用静态库项目应该编译他的机器上一样对矿井。 但事实并非如此。 基本上,他得到的错误是:

error: TheFrameworkHeader.h: No such file or directory

然后引起缺少的头其他错误的字符串。

对于故障排除此Any策略? 或任何人谁​​也有类似的经验,可以分享一些来之不易的知识? 是什么,从我总结了说明失踪? 我是否需要设置头的角色复制头编译静态库时建阶段?

Answer 1:

尽管取得了一些有用的建议,我从来没有想通这一个,但这里的情况相类似的任何一点信息。 我通过拆分原始项目分为两个创建库和相关的项目。 起初,图书馆和应用程序都在同一个项目中只有两个目标。 后来,我搬到了应用一个单独的项目。 一切似乎都工作,我把两个项目到远程git仓库。 当这些被其他计算机上的克隆,但均未发现库头。

后来,我发现,当我克隆原来的计算机上的项目发生了同样的错误。 很多的奋斗,我固定下来,以一个可怕的细节相关项目的文件夹的名称! (即,与该应用程序,而不是库中。该项目)不是.xcodeproject包,而不是应用程序标识符的名称,但包含的文件夹的名称。 当我改变,一切正常。 如果我改回原来的名字(任意计算机上),都没有发现再头。

如果有人对此有任何见解,请张贴一个答案!

编辑:由于我张贴这一点,同样的问题与其他项目发生,并再次,只是重命名包含固定的问题.xcodeproject文件夹中的文件夹。



Answer 2:

我不认为这是Git的,我认为它的Xcode。 我有一个非常类似的问题在这里,这里的Xcode / xcodebuild联编解决了一个包含路径错误(使其成为一个简单的。)用完全相同的库项目和xcconfig文件(从svn的干净的检出),但另一个包含文件夹 - 它的工作原理。 所以,thanx的解决方案,不怪的Git了;-)



Answer 3:

我经常忘记检查:你确定丢失的文件(即TheFrameWorkHeader.h”是git仓库它很可能是您的构建设置是正确的,但不知何故文件并没有被添加到正确的git?



Answer 4:

如果你有一个特定的机器上麻烦的楼,那么问题可能是一台机器或用户设置。 诸如环境变量 (也许INCLUDE_PATH或它的一个亲戚- Xcode使用GCC)。 你可能有一个“” 在这些变量中的一个。

解决这个问题的最好办法是必要的文件夹路径添加到-I开关在构建脚本。



Answer 5:

仔细检查“搜索路径 - >用户头搜索路径”建设(对于所有配置)包含共享的Xcode项目(您可以使用您创建的新源代码树变量)指向目录设置。



文章来源: Why are static library headers not found?