我使用的Linux环境为Ubuntu 14.04, 从官方源安装的Eclipse版本为3.8, GCC的版本为4.8.4. 因为要做C++共享指针的测试,才发现这个版本的Eclipse CDT插件似乎对C++11的标准支持的不是很好,试了很多设置,最多也只能让IDE不在对共享指针报错,不能顺利编译包含共享指针的代码。切换至新版的Eclipse Neon(4.6.2)后,顺利地解决了C++11共享指针编译问题。
1. 系统环境配置及软件安装
初始软件环境
- Ubuntu 14.04
- GCC 4.8.4
Step 1: 安装Eclipse IDE for C/C++
因为主要用来做C/C++开发,所以直接从Eclipse下载页面选择了Eclipse IDE for C/C++版本,这样就不需要下载后再去安装CDT插件。软件大小187MB,也不算太大,下载后直接解压既可以使用。
Step 2: 安装Java 8
Ubuntu的默认源安装的Java版本为OpenJDK 7。Eclipse Neon要求的版本是Java 8. 所以直接使用PPA源,安装Oracle JDK。
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
2. C++工程配置
新建一个C++工程,然后如下进行工程配置:
Step 1: 增加编译器选项配置 -std=C++11
Step 2: 重新配置__cplusplus
宏,值为201103L
3. 总结
完成以上配置后,在Eclipse Neon (4.6.2)上即可顺利编译使用shared_ptr
的C++代码。根据之前的实验结果,在Eclipse 3.8版本上,即使做出以上更改后,仍然报编译错误。另外,发现最新版Eclipse的启动和运行速度非常快,所以如果没必要,建议不要在老版本上浪费太多时间。