繁体   English   中英

Eclipse CDT Oxygen:编译器问题

[英]Eclipse CDT Oxygen: Compiler issue

我正在运行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没有配置正确的工具链。

我有几个问题:

  1. 如何查看项目的工具链,以及如何更改它? 我查找了帮助文章,但是我看到的项目属性菜单中的部分与帮助文章中的部分不同。 我看到的项目属性菜单没有“ C / C ++构建”部分。 怎么可能?

  2. 我用来生成Eclipse项目文件的CMake文件指定应该使用C ++ 11,那么为什么不这样呢?

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

在此处输入图片说明

这是我的.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文件引起的:

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

我认为CMake的CDT项目生成器已经过时,并且没有为C ++ 11支持正确配置生成的项目。

我建议采用以下方法来配置C ++ 11支持:

  • 转到Project Properties | C/C++ General | Preprocessor Include Paths Project Properties | C/C++ General | Preprocessor Include Paths Project Properties | C/C++ General | Preprocessor Include Paths
  • Providers标签中,选择CDT GCC Built-in Compiler Settings
  • (如有必要,请取消选中“使用项目之间共享的全局提供程序”。)
  • -std=c++11添加到“获取编译器规范的命令”中。
  • 应用并重建项目的索引。

完成此操作后,应正确解析C ++ 11符号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM