我正在运行Ubuntu 16.04,并且是第一次打开我刚安装的Eclipse CDT Oxygen。

我导入了一个现有的C ++项目,该项目使用设置add_definitions(-std=c++11)的CMake文件可以很好地构建。

我将CMake与命令cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ../src/一起使用来生成Eclipse项目文件,然后使用这些文件将项目导入Eclipse。

现在,我正在Eclipse中新导入的项目中查看源文件,并看到大量问题。所有无法解析的类型,例如std::default_random_engine

我的猜测是Eclipse没有配置正确的工具链。

我有几个问题:


如何查看项目的工具链,以及如何更改它?我查找了this帮助文章,但是我看到的项目属性菜单中的部分与帮助文章中的部分不同。我看到的项目属性菜单没有“ C / C ++构建”部分。这个怎么可能?
我用来生成Eclipse项目文件的CMake文件指定应该使用C ++ 11,那么为什么不这样呢?


这是我的项目属性菜单的样子:

c++ - Eclipse CDT Oxygen:编译器问题-LMLPHP

这是我的.project文件的样子:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>particle_filter</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
            <triggers>clean,full,incremental,</triggers>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
            <triggers>full,incremental,</triggers>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.cdt.core.cnature</nature>
        <nature>org.eclipse.cdt.core.ccnature</nature>
        <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
        <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
    </natures>
</projectDescription>


非常感谢!

最佳答案

缺少的C / C ++构建部分可能是由损坏的.project.cproject.settings/language.settings.xml文件引起的:


创建一个相同类型的新项目
在“导航器”视图中,将.project.cproject.settings/language.settings.xml文件与新项目的相应文件进行比较以查找问题(确保在.cproject.settings/language.settings.xml中使用相同的ID,但是与其他项目中的ID不同)

10-08 09:17