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

标签 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 和终端中),因为我收到错误:

Terminate called after throwing an instance of 'std::system_error' what(): Enable multithreading to use std::thread: Operation not permitted.

我发现我能够在终端中编译并运行调用 g++ 的代码,如下所示:

g++ -std=c++11 -pthread main.cpp -o Program

但我无法在 Code::Blocks 中设置相同的值。 我转到项目 -> 构建选项,在编译器设置选项卡中我选择了让 g++ 遵循 C++11 ISO C++ 语言标准 [-std=c++11]。 在编译器设置 -> 其他选项中,我输入了-pthread。 在链接器设置 -> 其他链接器选项中,我输入了 -pthread。 它不起作用,在 Code::Blocks 中构建并运行我的项目后,我收到相同的错误消息。

感谢您的帮助!

最佳答案

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

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

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

更新

再次转到构建选项>编译器设置。单击其他选项并输入 -pthread

关于Linux - 设置 Code::Blocks 来编译多线程 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30101874/

相关文章:

c++ - asio::io_service 工作立即结束

linux - 使用 ptrace 异步停止附加线程 - linux

c# - 在 Mono 中开发跨平台吗?

linux - 如何将脚本的输出保存在ansible 2.0.2文件中

java - 如何加入使用执行程序服务启动的线程?

c++ - boost 变体 istringstream 和流错误

android - 带进度条的 adb 推/拉

multithreading - cl-actors 返回值

java - 如何正确处理ThreadLocal变量?

c++构造函数中可移动类型的右值