我在这里搜索过论坛,但对我的情况没有任何帮助。 我正在尝试在 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/