Russian Qt Forum
Ноябрь 25, 2024, 15:31
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Почему qmake оптимизирует с -O2, а не с -O3?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Почему qmake оптимизирует с -O2, а не с -O3? (Прочитано 8050 раз)
yarick
Гость
Почему qmake оптимизирует с -O2, а не с -O3?
«
:
Январь 26, 2013, 16:26 »
В релиз-версии qmake вызывает g++ с ключём -O2. Но я читал что есть ещё -O3, которая представляет более крутую оптимизацию, например встраивание инлайн-функций и прочее, что бы пригодилось. Зачем оптимизировать меньше, если можно больше? Как заставить qmake использовать -O3?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #1 :
Январь 26, 2013, 17:29 »
О3 специфический режим оптимизации, он не всегда оптимальнее О2, поищи по инету.
О том как использовать ключи компилятора и линкера смотри Асистент
На память не помню, что-то вроде:
cxx-flags += ....
нужно добавить в pro-файл
Записан
Юра.
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #2 :
Январь 27, 2013, 13:30 »
Цитата: Ярик от Январь 26, 2013, 16:26
Как заставить qmake использовать -O3?
В pro-файл добавить, например, следующие строки:
Код:
*-g++ {
QMAKE_CXXFLAGS += -O3
}
Записан
Пока сам не сделаешь...
twp
Гость
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #3 :
Январь 28, 2013, 18:29 »
Можно каждый раз прописывать в pro-файле, а можно всего один раз отредактировать файл qmake.conf из mkspecs.
Ведь при генерации мэйкфайлов qmake всегда считывает параметры из qmake.conf.
После редактирования желательно пересобрать Qt
Записан
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #4 :
Январь 29, 2013, 10:06 »
Цитата: twp от Январь 28, 2013, 18:29
Можно каждый раз прописывать в pro-файле, а можно всего один раз отредактировать файл qmake.conf из mkspecs.
Вряд ли это хороший вариант. Для разных проектов могут понадобиться разные параметры компилятора/линкера, все равно придётся переопределять. Всякие QMAKE_* для того и сделаны, чтоб каждый раз mkspecs не править.
Записан
Пока сам не сделаешь...
twp
Гость
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #5 :
Январь 29, 2013, 13:44 »
Цитата: ViTech от Январь 29, 2013, 10:06
Цитата: twp от Январь 28, 2013, 18:29
Можно каждый раз прописывать в pro-файле, а можно всего один раз отредактировать файл qmake.conf из mkspecs.
Вряд ли это хороший вариант. Для разных проектов могут понадобиться разные параметры компилятора/линкера, все равно придётся переопределять. Всякие QMAKE_* для того и сделаны, чтоб каждый раз mkspecs не править.
Что я не так написал? Еще раз напишу более доходчиво - если надо использовать одни и те же опции компилятора/линкера для всех проектов (как новых так и уже созданных), лучше один раз подправить qmake.conf чем постоянно править pro-файлы. Еще один способ - это определить все общие опции в pri-файле, например config.pri и не забывать добавлять его в pro-файл.
Записан
twp
Гость
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #6 :
Январь 29, 2013, 14:03 »
Кроме того, нужно использовать QMAKE_CXXFLAGS_RELEASE поскольку QMAKE_CXXFLAGS применяется как к релизной так и дебажной сборке.
Записан
yarick
Гость
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #7 :
Февраль 26, 2013, 13:07 »
Добавил, теперь при компиляции выводит что-то вроде
"g++ -c -pipe -std=gnu++11 -O2 -O3 ..."
Т.е. две опции подряд... Это нормально, т.е. он будет оптимизировать в режиме O3?
Записан
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #8 :
Февраль 26, 2013, 13:52 »
Цитата: Ярик от Февраль 26, 2013, 13:07
"g++ -O2 -O3 ..."
Вроде наоборот надо, кто первый - того и тапки.
Записан
Пока сам не сделаешь...
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #9 :
Февраль 26, 2013, 13:54 »
Цитата: Ярик от Февраль 26, 2013, 13:07
Добавил, теперь при компиляции выводит что-то вроде
"g++ -c -pipe -std=gnu++11 -O2 -O3 ..."
Т.е. две опции подряд... Это нормально, т.е. он будет оптимизировать в режиме O3?
да
Цитировать
If you use multiple -O options, with or without level numbers, the last such option is the one that is effective.
Записан
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Почему qmake оптимизирует с -O2, а не с -O3?
«
Ответ #10 :
Февраль 26, 2013, 14:48 »
Цитата: Alex Custov от Февраль 26, 2013, 13:54
Цитировать
If you use multiple -O options, with or without level numbers, the last such option is the one that is effective.
Действительно, получается кто последний - того и тапки...
Тогда тут еще особенность:
QMAKE_CXXFLAGS добавляет ключи перед ключами оптимизации,
QMAKE_CXXFLAGS_RELEASE, QMAKE_CXXFLAGS_DEBUG там можно переопределить ключи оптимизации.
Записан
Пока сам не сделаешь...
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...