Могу ли я избежать явного указания флагов компилятора, чтобы получить хорошо оптимизированную сборку?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Могу ли я избежать явного указания флагов компилятора, чтобы получить хорошо оптимизированную сборку?

Сообщение Anonymous »

Предположим, у меня есть проект CMake, который создает приложение, интенсивно использующее ЦП.
Когда я создаю двоичные файлы для двоичного распространения или для тестирования производительности, я бы хотел, чтобы они были максимально или по крайней мере сильно оптимизировано. Конечно, некоторые оптимизации являются компромиссами, которые не всегда улучшают производительность, но я имею в виду оптимизации, которые обычно считаются «достаточно хорошими», чтобы их можно было применять повсеместно, т. е. применять к программе без ее профилирования; например, для GCC это будут флаги типа -O3 -march=native и, возможно, другие.
Теперь, просматривая документацию CMake, я не совсем нахожу гарантия того, что что-то подобное будет сделано для меня, если я использую тип сборки Release.
Конечно, я мог бы установить CMAKE__FLAGS_RELEASE переменная, которая в мой конкретный случай — CMAKE_CPP_FLAGS_RELEASE. Но тогда мне нужно будет:
  • Определить, на какую платформу я ориентируюсь
  • Определить характеристики процессора, который я использую моя цель
  • Определить компилятор, который я использую, и какую версию указанного компилятора
и на основе этого - и знание того, какие компиляторы предлагают какие оптимизации и как их включить - я можно установить эти флаги, например. во вспомогательном модуле.
Но - ни одна из этих настроек не характерна для моего проекта и программы, которую я компилирую. Интересно, почему CMake не делает этого за нас...
В любом случае, если мы не можем оставить все на попечение CMake - что такое общий (почти), идиоматический, надеюсь, широко используемый подход к включению «полной» оптимизации в CMake для многих компиляторов и на нескольких платформах?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ized-build
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»