【问题标题】:Adding a "preprocessor include" doesn't seem to have effect添加“预处理器包含”似乎没有效果
【发布时间】:2016-11-10 11:30:24
【问题描述】:

我希望 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。

【问题讨论】:

    标签: ide include eclipse-cdt


    【解决方案1】:

    正如您所注意到的,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 或任何其他标志:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 2018-05-18
      • 1970-01-01
      相关资源
      最近更新 更多