Linux - 设置Code :: Blocks来编译多线程C ++代码

时间:2015-05-07 13:02:28

标签: linux multithreading c++11 codeblocks

我在这里搜索了论坛,但在我的案例中没有任何帮助。 我正在尝试编写和编译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中构建并运行我的项目后,它不起作用我收到相同的错误消息。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

按照此问题的说明进行操作

How do I link to a library with Code::Blocks?

在最后一步,当弹出添加库对话框时键入pthread。

<强>更新

再次去构建选项&gt;编译器设置。单击其他选项并键入-pthread