Russian Qt Forum
Май 10, 2024, 01:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: опции компиллятора для многопоточности  (Прочитано 4531 раз)
SuleymanStalskiy
Гость
« : Июнь 01, 2014, 15:55 »

Добрый день, прошу помочь со след. проблемой
ОС - ubuntu 14.04 64bit, IDE - QtCreator - 3.0.1
Имеется код:

Код:
#include <iostream>
#include <thread>

using namespace std;

void printHello()
{
    cout << "stream 1" << endl;
    cout << "Hello" << endl;
}

int main()
{
    thread t1(printHello);
    t1.join();
    cout << "finish main" << endl;
    return 0;
}

компилится без ошибок, при запуске след. ошибка:
terminate called after throwing an instance of 'std::system_error'
  what():  Enable multithreading to use std::thread: Operation not permitted


нашёл решение - компилляция со след флагами:
g++  thread.cpp -o main -pthread -std=c++11 -Wl,--no-as-needed

Вопрос - КАК  и КУДА добавить флаги -Wl,--no-as-needed в QtCreator?
« Последнее редактирование: Июнь 01, 2014, 16:38 от SuleymanStalskiy » Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #1 : Июнь 01, 2014, 16:16 »

В *.pro   файл добавь строку
Код:
QMAKE_CXXFLAGS += -Wl,--no-as-needed

http://qt-project.org/doc/qt-4.8/qmake-variable-reference.html#qmake-cxxflags
Записан
SuleymanStalskiy
Гость
« Ответ #2 : Июнь 01, 2014, 16:26 »

добавил в .pro file QMAKE_CXXFLAGS += -Wl,--no-as-needed
не помогло
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #3 : Июнь 01, 2014, 17:16 »

у меня получилось вот так :

Код:
QMAKE_CXXFLAGS += -pthread -std=c++11
QMAKE_LFLAGS += -Wl,--no-as-needed


LIBS += -lpthread -lrt
Записан
SuleymanStalskiy
Гость
« Ответ #4 : Июнь 01, 2014, 17:42 »

большое спасибо. ТОЛЬКО с добавлением трёх строк программа запустилась без ошибок.
Хотя QMAKE_CXXFLAGS += -pthread -std=c++11 можно убрать, вынеся с++11 в строку:
CONFIG += c++11
думаю, что тема закрыта
« Последнее редактирование: Июнь 01, 2014, 17:57 от SuleymanStalskiy » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.061 секунд. Запросов: 23.