【发布时间】:2015-05-07 22:08:51
【问题描述】:
我已经搜索过这里的论坛,但对我的情况没有任何帮助。 我正在尝试在 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 和终端中),因为我遇到了错误:
在抛出 'std::system_error' 的实例后调用终止 what(): 启用多线程以使用 std::thread: 操作不 允许。
我发现我能够像这样在终端中编译和运行调用 g++ 的代码:
g++ -std=c++11 -pthread main.cpp -o Program
但我不能在 Code::Blocks 中设置相同的值。 我去了 Project -> Build options,在 Compiler settings 选项卡中我选择了让 g++ 遵循 C++11 ISO C++ 语言标准 [-std=c ++11]。 在编译器设置 -> 其他选项中,我输入了 -pthread。 在 Linker settings -> Other linker options 我输入了 -pthread。 它不起作用,在我在 Code::Blocks 中构建并运行我的项目后,我收到相同的错误消息。
感谢您的帮助!
【问题讨论】:
-
构建设置 -> 编译器设置中没有“高级选项”之类的内容。
标签: linux multithreading c++11 codeblocks