我正在尝试使用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。
任何帮助都将不胜感激。
答案 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)
这个答案适用于:
和
在我的情况下,当我将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。