Eclipse - CDT以编程方式添加包含路径不会出现

时间:2012-10-12 06:16:52

标签: eclipse include eclipse-cdt

我正在开发一个eclipse-java插件,以编程方式为项目添加包含路径。 我使用的代码部分如下。

String includePath = null;
ICProjectDescription projectDescription = CoreModel.getDefault().getProjectDescription(project, true);
ICConfigurationDescription configDecriptions[] = projectDescription.getConfigurations();
for (ICConfigurationDescription configDescription : configDecriptions) {
ICFolderDescription projectRoot = configDescription.getRootFolderDescription();
ICLanguageSetting[] settings = projectRoot.getLanguageSettings();
for (ICLanguageSetting setting : settings) {
    if (!"org.eclipse.cdt.core.gcc".equals(setting.getLanguageId())) {
    continue;
    }
    List<ICLanguageSettingEntry> includes = new ArrayList<ICLanguageSettingEntry>();
        includes.addAll(setting.getSettingEntriesList(ICSettingEntry.INCLUDE_PATH));
    for (int i = 0; i < tableViewer.getTable().getItemCount(); i++) {
        includePath = tableViewer.getTable().getItem(i).getText();
        includes.add(new CIncludePathEntry(includePath, ICSettingEntry.LOCAL));
    }
    setting.setSettingEntries(ICSettingEntry.INCLUDE_PATH, includes);
    }
}
CoreModel.getDefault().setProjectDescription(project, projectDescription);

当我打印从ICLanguageSetting.getSettingEntries()返回的值时,会成功添加包含路径。 但它们没有反映在属性 - > C / C ++ General-&gt; Paths&amp; Symbols对话框或Project Explorer视图中。

我错过了任何更新()或刷新()吗?

1 个答案:

答案 0 :(得分:0)

我知道这已经有3个月了,所以希望它仍然相关。

我的代码与您的代码看起来几乎完全相同,但是包含路径显示在属性 - > C / C ++一般 - &gt;路径和符号和工作中。所以我经历了每一行,我只能看到一个很大的不同:

为了构造一个新的CIncludePathEntry,我传入的第一个参数是IFolder,而不是String,所以我使用的是另一个构造函数。我不确定你的程序的其余部分是如何构建的,但也许你可以调用IProject.getFolder(String)并改为使用它。