Eclipse CDT中找不到头文件

时间:2016-06-21 04:20:20

标签: c++ eclipse eclipse-cdt

我正在尝试使用Eclipse CDT 8.8.1构建一个使用外部库(Casablanca)的项目。在Mac OS上。正如所料,第一次构建运行返回" cpprest / http_client.h文件未找到"错误。

然后我通过右键单击项目,选择Properties-> C / C ++包含路径和符号,添加外部包含路径,继续添加包含路径(/ Users / me / projects / casablanca / Release / include) ,并将其作为第一个列出的文件夹优先移动。

然而,这并没有解决问题,Eclipse仍然无法找到标题。 #include指令如下:

#include <cpprest/http_client.h>

并且添加的/ include目录确实有一个/ cpprest子目录,其中包含http_client.h。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

添加Project Properties | C/C++ General | Paths and Symbols的包含路径只会在索引项目时将包含路径添加到由CDT的索引器搜索的包含集合中。

需要通过其他方式告知实际构建系统包含路径。如果您正在使用Managed Build项目(而不是Makefile项目) - 听起来就是这样 - 您将在Project Properties | C/C++ Build | Settings中添加包含路径。请注意,索引器会自动选择构建设置,因此,一旦执行此操作,就不需要将其添加到Paths and Symbols

答案 1 :(得分:1)

这个答案适用于:

  1. 您没有C ++托管构建项目(例如,您像我一样拥有C ++ Makefile项目)。
    1. 代码编辑器中的各种内容用红色加下划线,因为未检测到头文件。
    2. 在我的情况下,当我将include目录添加到 Project Properties&gt;时,索引器找到了标题(以及所有红色下划线都消失了)。 C / C ++一般&gt;预处理器包括&gt;选择GNU C ++&gt;选择CDT用户设置条目&gt;按添加。确保组合框(也称为下拉菜单)设置为“包含目录”和“文件系统路径”。输入或浏览包含目录。然后按OK>行。

      请注意,在此之前,我尝试将include目录添加到项目属性&gt; C / C ++一般&gt;路径和符号&gt; GNU C ++&gt;添加,但这并没有单独解决问题。

      根据一些快速测试,似乎路径和符号&gt; GNU C ++&gt;假设您正在使用外部构建系统,那么包含是不必要的。

      我在Ubuntu 16.04上使用Eclipse 3.8.1和Eclipse CDT 8.6.0。