C++ Eclipse CDT:编译器问题
我正在运行Ubuntu16.04,刚刚第一次打开了新安装的EclipseCDToxygenC++ Eclipse CDT:编译器问题,c++,eclipse,c++11,eclipse-cdt,toolchain,C++,Eclipse,C++11,Eclipse Cdt,Toolchain,我正在运行Ubuntu16.04,刚刚第一次打开了新安装的EclipseCDToxygen 导入了一个现有的C++项目,它使用一个CMAX文件来构建,它设置了 Addio定义(-STD= C++ 11)< /C> > /P> 我使用CMake和命令CMake-G“Eclipse CDT4-Unix Makefiles”-D CMake_BUILD_TYPE=Debug../src/生成Eclipse项目文件,然后使用这些文件将项目导入Eclipse 现在,我正在查看Eclipse中新导入的项目中
导入了一个现有的C++项目,它使用一个CMAX文件来构建,它设置了<代码> Addio定义(-STD= C++ 11)< /C> > /P> 我使用CMake和命令
CMake-G“Eclipse CDT4-Unix Makefiles”-D CMake_BUILD_TYPE=Debug../src/
生成Eclipse项目文件,然后使用这些文件将项目导入Eclipse
现在,我正在查看Eclipse中新导入的项目中的一个源文件,并看到大量问题。所有类型都无法解析,例如std::default\u random\u engine
我猜Eclipse没有配置正确的工具链
我有几个问题:
<?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>
这就是我的.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>
粒子滤波器
org.eclipse.cdt.managedbuilder.core.genmakebuilder
干净、完整、增量、,
org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
全部、增量、,
org.eclipse.cdt.core.cn
org.eclipse.cdt.core.ccnature
org.eclipse.cdt.managedbuilder.core.managedBuildNature
org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
非常感谢 缺少C/C++构建部分可能是由于损坏的.project
,.cproject
或.settings/language.settings.xml
文件引起的:
.project
、.cproject
和.settings/language.settings.xml
文件与新项目的相应文件进行比较,以查找问题(确保在.cproject
和.settings/language.settings.xml
中使用相同的ID,但与其他项目中的ID不同).project
、.cproject
或.settings/language.settings.xml
文件造成的:
.project
、.cproject
和.settings/language.settings.xml
文件与新项目的相应文件进行比较,以查找问题(确保在.cproject
和.settings/language.settings.xml
中使用相同的ID,但与其他项目中的ID不同)我认为CMake的CDT项目生成器已经过时了,并且没有为C++11支持正确配置生成的项目 我建议使用以下方法来配置C++11支持:
- 转到
项目属性| C/C++常规|预处理器包含路径
- 在
选项卡中,选择提供程序
CDT GCC内置编译器设置
- (如有必要,取消选中“使用项目间共享的全局提供程序”。)
- 将
添加到“获取编译器规范的命令”中-std=c++11
- 应用并重新生成项目的索引
完成此操作后,应正确解析C++11符号。我认为CMake的CDT项目生成器已经过时,无法正确配置生成的项目以支持C++11 我建议使用以下方法来配置C++11支持:
- 转到
项目属性| C/C++常规|预处理器包含路径
- 在
选项卡中,选择提供程序
CDT GCC内置编译器设置
- (如有必要,取消选中“使用项目间共享的全局提供程序”。)
- 将
添加到“获取编译器规范的命令”中-std=c++11
- 应用并重新生成项目的索引
完成此操作后,C++11符号应正确解析。在Eclipse Oxygen中,项目属性中也应有一个C/C++构建部分。请在问题中添加项目属性对话框的屏幕截图。@howlger我添加了一个屏幕截图。非常感谢您的帮助!您的
.project
文件外观如何比如?如果创建一个新项目,C/C++构建部分也会丢失吗?.project
在我看来不错。问题可能是由一个坏的.cproject
文件引起的:如果用一个新项目的.cproject
文件替换.cproject
文件,会发生什么情况?在Eclipse中也应该有一个C/C++构建项目属性中的部分。请在问题中添加项目属性对话框的屏幕截图。@howlger我添加了一个屏幕截图。非常感谢您的帮助!您的.project
文件是什么样子的?如果您创建了一个新项目,C/C++构建部分也会丢失吗?。project
对我来说很好。也许不是问题是由损坏的.cproject
文件引起的:如果将.cproject
文件替换为.cproject