Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: eugene.n от Август 20, 2015, 08:36



Название: c++11 + QtCreator + gcc + Ubuntu
Отправлено: eugene.n от Август 20, 2015, 08:36
Есть QtCreator (последний) с Qt 5.5 на ubuntu 14.04.

Не получается использовать потоки С++11 thread. Ошибка - "Qt Creator outputs terminate called after throwing an instance of 'std::system_error' what(): Operation not permitted"

Ситуация схожая с этой  (http://stackoverflow.com/questions/11710524/how-to-use-pthread-on-qt-creator).

Добавляю в .pro файле строки:

Код:
QMAKE_CXXFLAGS += -std=c++11 -pthread 
LIBS += -pthread

советовали даже так сделать:
Код:
CONFIG += -std=c++11

и вот так
Код:
LIBS += -lpthread

Не помогает. В чем может заключаться проблема?


Название: Re: c++11 + QtCreator + gcc + Ubuntu
Отправлено: m_ax от Август 20, 2015, 10:46
Допишите строчку:

LIBS += -Wl,-no-as-needed


http://stackoverflow.com/questions/19463602/compiling-multithread-code-with-g (http://stackoverflow.com/questions/19463602/compiling-multithread-code-with-g)
Цитировать
It looks like this behaviour is caused by a bug in gcc: https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1228201

The workaround provided in the last comment of that bug discussion does work and solves the issue:

-Wl,--no-as-needed


Название: Re: c++11 + QtCreator + gcc + Ubuntu
Отправлено: eugene.n от Август 20, 2015, 18:31
m_ax, попробовал. Не помогло. Читал, что это вроде баг какой-то раньше так исправлялся в gcc.

В итоге помогло вот что:

Код:
QMAKE_CXXFLAGS += -std=c++11
QMAKE_LIBS += -pthread

 :)