我正在运行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,那么为什么不这样呢?
这是我的项目属性菜单的样子:
这是我的.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不同)