添加"预处理器包括"似乎没有效果

时间:2016-11-10 11:30:24

标签: ide include eclipse-cdt

我希望Ecplise CDT解析器预先包含未在我的源文件中指定的文件,原因是我不会进入,以免在各个地方抱怨未声明的标识符。

我尝试使用Project | Properties | C/C++ General | Preprocesor Includes | Entries执行此操作,并为所有语言添加相关文件。但是,这似乎没有效果。如果我转到Paths and Symbols | Includes,我只能添加包含目录,而不是包含文件。

我做错了什么,如何让C / C ++解析器包含我的文件?

注意:我正在使用nVIDIA CUDA 8.0,这是一个经过修改的支持CUDA的Eclipse;平台版本是4.4.0。

1 个答案:

答案 0 :(得分:0)

正如您所注意到的,Paths and Symbols | Includes仅支持包含目录,因此Preprocessor Include Paths, Macros etc.是可行的方法。

您可能遇到的一些常见陷阱:

  • Entries标签中,您是否在Languages下选择了正确的语言?每种语言都有自己的一组条目。

  • Providers标签中,对于CDT User Setting Entries(假设您正在添加条目的那个),Use global provider shared between projects是否已取消选中?如果已选中,则将忽略项目特定的条目。

  • 您是否重建了项目的索引(Project -> C/C++ Index -> Rebuild)?在重建索引之前,通常不会获取新设置。

其他可能有用的事情:

  • 如果您在Add Include对话框中将包含文件指定为Project PathWorkspace Path,请尝试使用Filesystem Path,即使文件也是如此在您的项目或工作区内。这有时会有所帮助。

  • 在同一个对话框中,尝试检查Treat as built-in。我不确定这对Include Files到底有什么用,但它过去曾帮助我包含目录。

最后,如果这些都不起作用,则可以更直接地指定-include或任何其他标志:

  • Providers标签中,选择Built-in Compiler Settings提供商。
  • 确保取消选中Use global provider shared between projects
  • -include <path>或其他任何标记附加到Command to get compiler specs