gpt4 book ai didi

C++11 线程错误运行时

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:42 24 4
gpt4 key购买 nike

你好,我在 C++11 中遇到线程问题。我有 ubuntu 64 位 13.10(测试)和 g++ 4.8.1。我尝试编译代码:

#include <thread>

void func()
{
// do some work
}

int main()
{
std::thread t(func);
t.join();
return 0;
}

带有选项:-std=c++11 -pthread -lpthread。编译成功,但是当我尝试运行它时,我收到了一个错误:

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

最佳答案

我认为其他答案有点误导。重要的是你只需要-pthread这个标志的顺序重要!

-pthread 将自动链接到 libpthread 并且它会正确执行此操作。请注意,您需要在编译链接您的代码时提供此选项(当然,当您同时执行所有操作时除外)。

只有当您显式提供 -lpthread 时,放置的顺序可能很重要,但正如已经提到的,您不应该在使用 -pthread 时显式添加它>.

关于C++11 线程错误运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19358994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com