如何在使用线程的简单 C++ 程序中避免编译错误 'std::system_error'

How to avoid compilation error 'std::system_error' in simple c++ program using thread

我正在 Code::Block IDE

中测试一个简单的 C++ 线程程序
#include <iostream>
#include <thread>

using namespace std;

void thread_function()
{
    std::cout<<"Function1 thread is running\n";
}

int main()
{
    std::thread t1(thread_function);
    t1.join();
    return 0;
}

它给出以下 运行 时间错误

terminate called after throwing as instance of 'std::system_error' 
  what(): Enable multithreading to use std::thread: Operation not permitted
Aborted(core dumped)

但是当我使用

手动编译代码时
g++ -std=c++11 -pthread main.cpp

它编译并且 运行 没有任何错误。 我已经将 Code::Block 编译器更改为 g++ c++11,但仍然出现错误。 谁能告诉我如何解决 Code::Block IDE

中的这个问题

看起来当你 link 你的程序 Code::Blocks “-pthread” 选项没有启用。您需要为 linker 选项添加它(注意不要添加 -pthread 库,而是将其作为选项添加)。