我希望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。
答案 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 Path
或Workspace 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
。