Для того, чтобы включить опции профилирования (-pg) при сборке программы, в файле проекта (.pro можно прописать следующие опции:
QMAKE_CXXFLAGS_DEBUG += -pg
QMAKE_LFLAGS_DEBUG += -pg
При этом, в момент сборки компилятору GCC будет передаваться опция -pg, чтобы бинарник собрался в режиме профилирования.
Способа передать эти параметры через командную строку в qmake - найти не смог.
Если бинарник собрался в режиме профилирования, то после его запуска и завершения его работы в каталоге с ним должен появиться файл gmon.out. Просмотреть информацию из этого файла можно с помощью утилиты gprof. Используется эта утилита так:
gprof <имя_бинарника> gmon.out -p
или, чтобы увидеть граф вызовов:
gprof <имя_бинарника> gmon.out -q
или, чтобы увидеть аннотированные исходники:
gprof <имя_бинарника> gmon.out -A
В результате будет сформирован отчет об использовании каждой функции/метода в программе. Да, этой утилите обязательно нужно указывать имя бинарника, чтобы она могла сопоставить метки в файле gmon.out с реальными вызовами функций.
Внимание! В GCC 6 существует баг, из-за которого формируется дефолтный (почти пустой) файл gmon.out. И gprof проказывает пустой отчет. Чтобы обойти эту проблему, можно воспользоваться опцией -no-pie:
QMAKE_CXXFLAGS_DEBUG += -pg -no-pie
QMAKE_LFLAGS_DEBUG += -pg -no-pie