С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
1

Использование компиляторов mingw, с поддержкой С++11, в Qt Creator 3.0.1

12.04.2014, 08:31. Просмотров 3172. Ответов 18
Метки нет (Все метки)

Подскажите, пожалуйста, можно ли использовать в Qt Creator компиляторы mingw, поддерживающие С++11? Что для этого нужно? Почему-то, не получается создать комплект, в creator, с такими компиляторами (например, с x64-4.8.0-release-posix-seh-rev1). Пишет, что такой компилятор не может создавать код для этого профиля Qt (Qt 4.8.5., mingw).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2014, 08:31
Ответы с готовыми решениями:

MinGW в Qt Creator
Необходимо подключить к Qt Creator 4.8.1 компилятор MinGW версии 4.7.0....

Как установить FTLK на Qt creator + MinGW
Собственно, как? Ничего толкового в гугле так и не нашел, а Страусструп уже в...

QT Creator MinGW 32 есть ли способ узнать об утечках памяти?
Доброго времени суток, собственно вопрос уже задан в названии темы.. Есть ли...

Использование MathCad в програме на С++ (Qt Creator)
Уважаемые форумчане! Мне необходимо нарисовать график функции введеной...

Использование виджетов, созданных в Creator
Вопрос следующий: Необходимо, используя проект GUI, созданный в Creator'е,...

18
Flassie
186 / 171 / 38
Регистрация: 03.08.2012
Сообщений: 596
Завершенные тесты: 2
12.04.2014, 08:46 2
Цитата Сообщение от lss Посмотреть сообщение
Подскажите, пожалуйста, можно ли использовать в Qt Creator компиляторы mingw, поддерживающие С++11? Что для этого нужно? Почему-то, не получается создать комплект, в creator, с такими компиляторами (например, с x64-4.8.0-release-posix-seh-rev1). Пишет, что такой компилятор не может создавать код для этого профиля Qt (Qt 4.8.5., mingw).
Насколько я знаю, с 5ой версии Qt'a mingw с поддержкой C++11 идет в комплекте
1
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
12.04.2014, 08:58  [ТС] 3
Понятно. Вот не пойму, в чём причина. То ли в разрядности Qt и компиляторов, то ли в чём-то ещё. Если правильно понимаю, то Qt 5 - 64 битная, а до неё - 32-х битные? Компиляторы, которые пытаютсь подключить к Qt 4, 64-х битные. Не знаю, есть ли 32-х битные, которые поддерживают С++11? Или и такой компилятор не поможет? То есть в самой сборке Qt должна быть поддержка С++11?
0
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
12.04.2014, 10:25 4
Цитата Сообщение от lss Посмотреть сообщение
не может создавать код для этого профиля Qt (Qt 4.8.5., mingw)
Конечно не может. Так как компилятор нужно юзать тот же каким собран Qt.
Соберите Qt из сорцов вашим компилятором - тогда будет работать все.
1
Belfegor
Ghost
173 / 173 / 40
Регистрация: 16.09.2012
Сообщений: 526
12.04.2014, 11:03 5
C++
1
CONFIG +=C++11
в .pro
1
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
12.04.2014, 11:45 6
Belfegor, это просто добавит -std=c++11 к ключам сборки. Собирать оно от этого не начнет.
0
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
12.04.2014, 15:54  [ТС] 7
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Так как компилятор нужно юзать тот же каким собран Qt.
А каким он собран? Подключаю разные mingw: 4.4.0, 4.4.1, 4.6.3, 4.7.1, и все они подключаются (т.е., при подключении к комплекту предупреждений нет (будут ли они нормально компилировать - это ещё неизвестно)). Но все они 32-х разрядные. Наверное, тут определяющим является, именно, разрядность? Т.е., разрядность должна совпадать с разрядностью Qt? Вопрос остаётся:
Цитата Сообщение от lss Посмотреть сообщение
есть ли 32-х битные, которые поддерживают С++11? Или и такой компилятор не поможет? То есть в самой сборке Qt должна быть поддержка С++11?
Т.е., Qt должна быть собрана компилятором с поддержкой С++11, а в сборках (32-х битных) до Qt 5, этого нет? Или не существует 32-х битных компиляторов с поддержкой С++11?
0
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
12.04.2014, 15:58 8
Доу, я на разрядность вообще внимания не обратил. Конечно они не совместимы.

Компиляторы существуют под множество платформ. В случае с gcc поддержка С++11 есть для всех основных платформ.

Qt должен собран тем же компилятором, а С++11 можно в Qt опционально включить. На работу вашего приложения это в дальнейшем не скажется.
1
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
12.04.2014, 22:43  [ТС] 9
Цитата Сообщение от RazrFalcon Посмотреть сообщение
а С++11 можно в Qt опционально включить.
С++11 мне не в Qt нужет. Мне нужно в creator собирать проекты без Qt (просто проекты С++), но с поддержкой С++11. Это возможно как-то сделать без использования профиля Qt в creator?
0
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
22.04.2014, 22:02  [ТС] 10
Помогло добавление в .pro:
C++ (Qt)
1
QMAKE_CXXFLAGS += -std=c++0x
Без этого - ни в какую... Вот это не помогало:
C++ (Qt)
1
CONFIG +=C++11
Не помогало прописывание в - Флаги генерации кода для платформы: -std=c++0x.

Ещё нужно, чтобы разрядность компилятора совпадала с разрядностью сборки Qt. Если используется универсальный компилятор (x86_64), то в Компиляторах, ABI - выбирать нужную разрядность.
Сборки компиляторв нужно подбирать. Пробовл с Qt 4.8.1 - 4.8.5, mingw 4.6.3 (mingw32-gcc-4.6.3-release-c,c++,fortran-sjlj) и выше (4.7.0 - 4.8.2).
1
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
22.04.2014, 22:12 11
Цитата Сообщение от lss Посмотреть сообщение
Если используется универсальный компилятор (x86_64)


Это не универсальный компилятор, это архитектура процессора.
Собранная под такую архитектуру программа не будет работать на х86(32bit).
0
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
22.04.2014, 22:39  [ТС] 12
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Это не универсальный компилятор, это архитектура процессора.
Что тогда есть переключение, в ABI, с x86-windows-msys-pe-32bit на x86-windows-msys-pe-64bit ?
0
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
22.04.2014, 22:43 13
Цитата Сообщение от lss Посмотреть сообщение
Что тогда есть переключение, в ABI, с x86-windows-msys-pe-32bit на x86-windows-msys-pe-64bit ?
Смена целевых архитектур.
1
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
22.04.2014, 23:01  [ТС] 14
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Смена целевых архитектур.
И почему тогда не будет работать на х86(32bit) ?
0
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
22.04.2014, 23:05 15
Ну если использовать виндовую терминологию: то вы собираете прогу под 64bit архитектуру. А запустить 64-х битное приложение в 32-х битной винде нельзя (как и в других ОС). А вот 32-х битное в 64-й битной ОС можно (при наличии либ совместимости).
Так как x86_64 подразумевает обратносовместимые с x86 команды процессора, а не на оборот.
1
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
22.04.2014, 23:15  [ТС] 16
x86-windows-msys-pe-64bit - так собираю под 64bit архитектуру; x86-windows-msys-pe-32bit - так, под какую?
0
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
22.04.2014, 23:22 17
Я не знаю что у вас за маркировка используется. Но могу предположить что первый для 64bit, второй для 32bit.

В целом смысла собирать под 64bit я решительно не вижу...
0
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
23.04.2014, 00:23  [ТС] 18
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Я не знаю что у вас за маркировка используется.
О какой маркировке речь? Об этой: x86-windows-msys-pe-64bit, x86-windows-msys-pe-32bit? Это автоматически проставляется в creator-е (Компиляторы, ABI), когда новый компилятор добавляю. Если компилятор только на х32, или только на х64, то там только одно значение можно выбрать, если x86_64 - то два. Название самой сборки mingw такая, например: x86_64-4.8.2-release-posix-seh-rt_v3-rev3, или x86_64-mingw32-gcc-4.7.0-release-c,c++,fortran-sjlj.
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Но могу предположить что первый для 64bit, второй для 32bit.
Я правильно понял, что такими компиляторами можно делать сборку под платформу x86(32bit)?
0
lss
930 / 859 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
24.04.2014, 10:08  [ТС] 19
Не правильно понял. Что так: x86-windows-msys-pe-64bit, что так: x86-windows-msys-pe-32bit, всё равно получается .exe 64bit. На что тогда этот выбор влияет - непонятно.
0
24.04.2014, 10:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2014, 10:08

Использование функции один раз в Qt Creator
Доброго времени суток. При создании калькулятора столкнулась с проблемой: как...

Qt Creator с отладчиком CDB. Как настроить использование исходников?
Qt Creator 3.6.1, Qt 5.6. Сам отладчик работает, но показывает...

Стоит ли ставить Gentoo и будут ли там проблемы с установкой компиляторов и поддержкой ПО для микроконтроллеров
Доброе время суток) Ребят, подскажите : стоит ли мне ставить Gentoo и будут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru