gpt4 book ai didi

c++ - 带有 C++11 线程的 Qtcreator

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:18 24 4
gpt4 key购买 nike

我为 C++11 线程编写了 hello world 程序。我在 gcc 4.9.1 中使用 qtcreator ide,但我无法运行该程序。它编译正确。但是当我运行时,它会给出以下警告

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

我的project.pro文件是

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp
QMAKE_CXXFLAGS += -std=c++11
LIBS += -pthread

而 main.cpp 是

#include <iostream>
#include <thread>
void hello()
{
std::cout<<"Hello Concurrent World\n";
}
int main()
{
std::thread t(hello);
t.join();
}

我观察到的是它使用

g++ -c -pipe -std=c++11 -g -Wall -W -fPIE  -I/usr/lib/qt/mkspecs/linux-g++ -I. -o main.o main.cpp

创建main.o目标文件和

g++ -Wl,-O1,--sort-common,--as-needed,-z,relro -o project main.o   -pthread 

创建可执行文件。我从用于创建可执行文件的命令中删除 --as-needed 。它工作正常。请让我知道正确的解决方案,以便我可以将 qtcreator 用于 C++11 线程。

最佳答案

这是 libstdc++ 中的错误。作为解决方法,如果使用 C++ 线程,请不要使用 --as-needed

See here .

关于c++ - 带有 C++11 线程的 Qtcreator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388246/

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