我的目标是创建多线程程序,但我甚至无法在ECLIPSE CDT上执行一个简单的线程。我的工具是: ECLIPSE 3.8.1 CDT Ubuntu 13.10
我注意到有很多类似的问题。我尝试了其他解决方案,但都无法解决我的问题。
当我在Eclipse CDT中输入代码时,Eclipse无法“解析”符号“thread”,但它可以找到头文件“thread”。Mutex也无法解析。此外,在构建后,运行程序时,Eclipse会返回:
"terminate called after throwing an instance of 'std::system_error' what(): Enable multithreading to use std::thread: Operation not permitted"
一些额外的注释:
我可以使用以下命令在终端中编译和执行代码: 'clang++ c.cpp -pthread -std=c++11' 但是...... 'g++ c.cpp -pthread -std=c++11'编译并 产生与上述相同的错误。因此,看起来这是编译器问题。我开始在Eclipse CDT中使用clang++编译器在新项目中编写代码,现在出现了与上述相同的未解决“thread”并产生错误的情况。因此,我认为我在Eclipse中设置了一些错误的设置、路径或标志。
include <iostream>
include <thread>
using namespace std;
void p1(){
cout<<"process 1 is processing"<<endl;
}
int main() {
thread t1(&p1);
cout<<"Hello from main()"<<endl;
t1.join();
return 0;
}