【问题标题】:Mac + xcode 6.4 - header include pathMac + xcode 6.4 - 标头包含路径
【发布时间】:2015-10-05 01:41:15
【问题描述】:

所以,我有一个 Xcode 项目,其中包含来自外部库(静态)的标头的源代码

包含以普通方式完成:

 #include <iostream>
 #include <string>
 #include <jsapi.h>

第三行导致编译错误:'jsapi.h' file not found

例如:Lexical or Preprocessor issue 'jsapi.h' file not found

现在我知道我应该将包含文件夹添加到项目设置中。所以我打开了这些项目并进入了Header Search Paths 下的Search Paths 类别,我在标题真正所在的位置添加了/usr/local/include/。还是一样的错误。我尝试在/Users/.../include/ 下复制它们并指向那里 - 仍然是同样的错误。

所以我尝试通过 SO,人们建议使用 User Header Search Paths,这样做了 - 仍然是同样的错误。

现在我知道这将是一件很愚蠢的事情,但为什么 Xcode 不默认搜索这些路径(假设 / 表示根文件夹 - 因为某种原因我的 C 标头在 ./Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/ 下)。我可以尝试在那里复制那些头文件,但是……这只会弊大于利。

【问题讨论】:

  • jsapi.h 在哪里?另外,它应该是#include "jsapi.h" 而不是#include &lt;jsapi.h&gt;
  • 为什么不去编译“选项卡”看看生成的命令行呢?您将看到 Xcode 是否正确生成了 -I 选项。 (它总是对我有用)。在命令行中执行 mdfind jsapi.h 以确认头文件所在的位置也会有所帮助。
  • #I'L'我不应该(我正在从 Linux 系统迁移项目,您使用 大括号作为基于库的包含,只需添加 -I... 包含文件夹小路)。除非 Mac 对这些有不同的标准。
  • #Laurent Michel - 对于mdfind jsapi.h,结果是正确的(我正在寻找它)。我在 Xcode 内部定位时遇到了一些小问题 - 你能给我提示或两个导航到编译“选项卡”
  • 我刚刚意识到 -I... 甚至没有添加到编译器标志中。这怎么可能?!

标签: c++ objective-c c xcode macos


【解决方案1】:

只是为了展示......

“构建选项卡”称为“报表导航器”。我圈出来了……

然后你可以看到最右边的图标:

单击该按钮,您将看到完整的构建命令文本。

最后,在选项中,您可以在下面看到我为第 3 方库定义的设置:

您甚至可以看到我在这种情况下使用了“用户标题搜索路径”。顺便说一句,我还添加了库搜索路径(就在上面)。

希望有帮助!

【讨论】:

  • 谢谢,这似乎接近我所需要的,但是“在选项中”是什么意思?您在哪里找到这个“搜索路径”下拉菜单?
猜你喜欢
  • 2023-03-29
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
  • 2021-11-24
  • 2014-10-21
  • 1970-01-01
相关资源
最近更新 更多