我在这里搜索了论坛,但在我的案例中没有任何帮助。 我正在尝试编写和编译Code :: Blocks 13.12中的一些C ++多线程代码,现在我唯一的代码就是:
#include <iostream>
#include <thread>
void cpp11()
{
std::cout<<"C++11 MULTITHREADING\n";
}
int main()
{
std::thread t(cpp11);
t.join();
}
最初我无法编译和运行该代码(在Code :: Blocks和Terminal中),因为我收到了错误:
在抛出'std :: system_error'的实例后终止调用 what():启用多线程以使用std :: thread:不操作 允许的。
我发现我能够编译并运行在终端中调用g ++的代码:
g++ -std=c++11 -pthread main.cpp -o Program
但我不能在Code :: Blocks中设置相同的内容。 我去了项目 - &gt;在我选择的编译器设置选项卡中构建选项 让g ++遵循C ++ 11 ISO C ++语言标准[-std = c ++ 11] 。 在编译器设置 - &gt;其他选项我输入了 -pthread 。 在链接器设置 - &gt;其他链接器选项我键入了 - pthread 。 它在Code :: Blocks中构建并运行我的项目后,它不起作用我收到相同的错误消息。
感谢您的帮助!
答案 0 :(得分:0)
按照此问题的说明进行操作
How do I link to a library with Code::Blocks?
在最后一步,当弹出添加库对话框时键入pthread。
<强>更新强>
再次去构建选项&gt;编译器设置。单击其他选项并键入-pthread