2016-11-10 81 views
0

我希望Ecplise CDT解析器预先包含未在源文件中指定的文件,原因是我不会进入,以免抱怨在各个地方未申报的标识符。添加“预处理器包含”似乎没有效果

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

我在做什么错了,我怎样才能让C/C++解析器包含我的文件?

注意:我使用nVIDIA CUDA 8.0的nsight,一个修改后的CUDA启用的Eclipse;平台版本是4.4.0。

回答

0

正如你注意到的,Paths and Symbols | Includes只支持include目录,所以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 Directories提供了帮助。

最后,如果没有工作的,还有一个更直接的方式来指定-include或任何其他标志:

  • Providers选项卡,选择Built-in Compiler Settings提供商。
  • 确保Use global provider shared between projects未被选中
  • 追加-include <path>或任何其他标志的Command to get compiler specs