2017-02-04 19 views
1

Я пытаюсь профилировать OpenCV, используя Intel VTune Amplifier. На странице this есть список вариантов компилятора, предлагаемых для получения лучшего анализа.OpenCV встраивается в режим отладки с оптимизацией?

Как вы можете видеть, это сочетание флагов отладки (например, -g) и флаги оптимизации (например, -O2 или выше), поэтому мы можем сказать, что это предлагает «режим выпуска с отладочной информацией».

Для того, чтобы профиль OpenCV с VTune, я думаю, мне тоже нужно построить его с этими параметрами. Однако OpenCV построен с использованием CMAKE, а с использованием cmake -D CMAKE_BUILD_TYPE=Release будут созданы флаги оптимизации (хотя я не знаю, какие из них, я полагаю, -O3 или аналогичные) без параметров отладки и наоборот, используя cmake -D CMAKE_BUILD_TYPE=Debug.

В заключение мне кажется, что я не могу построить OpenCV с флагами -g и -O2, которые также рекомендуется для профилирования приложений с помощью VTune. Я прав?

Как я могу это решить?

ответ

1

https://cmake.org/cmake/help/v3.0/variable/CMAKE_BUILD_TYPE.html

Используйте CMAKE_BUILD_TYPE=RelWithDebInfo, чтобы получить как флаги оптимизации и отладочной информации.

+0

Сэр, вы спасли мой день, спасибо. Включает ли это опцию -O0? Потому что ссылаясь на [this] (https://software.intel.com/en-us/node/605665): «не используйте Debug Build или' -O0' » – justHelloWorld

+0

' make VERBOSE = 1' покажет вам команды, которые он так что вы можете точно видеть, какие флаги используются. -O0 - это не оптимизация, поэтому это не похоже на то, что сборка релизов будет иметь это, но просто проверьте, чтобы убедиться в этом. – xaxxon

+0

это замечательно! Я думаю, что это все, что мне нужно, спасибо! – justHelloWorld