关于Eclipse下启用并编译 C++ 11 的问题

最近在学习C++,在学习C++11的时候,发现eclipse不能支持C++11的编译,经过一番折腾,终于将其搞定,下面附上操作方法,谨防忘记…

我的环境是 Ubuntu 14.0 64-bit 使用 GNU 的 G++ 4.9.1 编译器,IDE是 Eclipse IDE for C/C++ Developers ( Luna Service Release 1a (4.4.1) )

  1. 首先在eclipse中创建一个新项目,右击项目名,选择 Properties(Alt + Enter)
  2. 在 C/C++ Build 中选择 Setting ,找到右侧的 GCC C++ Compiler 下的 Miscellaneous
  3. 在 Other flags 里最后加入 -std=c++11 ,这样就完成了编译 C++ 11 的选项
    Enable C++ 11 in eclipse

    Enable C++ 11 in eclipse

  4. 然后在 C/C++ Build 中选择 Preprocessor
  5. 在 Defined symbols 中加入 __cplusplus=201103L
    Enable C++ 11 in eclipse

    Enable C++ 11 in eclipse

这样就大功告成啦

测试代码如下:

/*
 * main.cpp
 *
 *  Created on: Feb 8, 2015
 *      Author: dlll
 */

#include <iostream>
#include <vector>
#include <thread>

int main() {

	std::vector threads;

	for (int i = 0; i < 5; ++i) {
		threads.push_back(std::thread([]() {
			std::cout << "Hello from lamda thread " << std::this_thread::get_id() << std::endl;
		}));
	}

	for (auto& thread : threads) {
		thread.join();
	}

	std::cout << "Main Thread" << "\t" << std::this_thread::get_id() << std::endl;

	return 0;

}

在编译这段代码时,遇到一个错误

/usr/include/c++/4.9/thread:136: undefined reference to `pthread_create’

这是由于没有添加pthread这个库文件导致的

添加方法同上,在 GCC C++ Linker 中的 Libraries 添加 pthread 即可

Enable C++ 11 in eclipse

Enable C++ 11 in eclipse

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据