Здравствуйте.
Мне понадобилось запустить прогу в Qt под профайлером, чтобы найти места потери производительности, решил использовать gprof входящий в состав minGW, и круто обломался. В файле проекта есть возможность задать компилятору флаг -pg через QMAKE_CXXFLAGS_DEBUG, судя по выводу компилятора, этот флаг до него успешно доходит, но линковщик ругается "undefined reference to mcount". Я так понимаю, во всем виновата система метакомпиляции, хотя,
Кому-нибудь удавалось попрофайлить Qt-шное приложение? Если да, то какой танец с бубном плясать, какой взять бубен, и что курить?
Заранее спасибо
Qt приложение ничем не отличается от любого другого.
если ты работаешь через makefile-прямо там пропиши нужные опции в переменых CFLAGS и CXXFLAGS и выполни команды make clean;make
А>Может, есть более простой способ запрофайлить Qt'шное приложение?
Performance Validator... тока он платный
хотя есть возможность скачать для ознакомления в течение 30 дней. Сам сейчас бьюсь над вопросом как мне мое Qt приложение отпрофилировать...
Здравствуйте, Аноним, Вы писали:
А>Мне понадобилось запустить прогу в Qt под профайлером, чтобы найти места потери производительности, решил использовать gprof входящий в состав minGW, и круто обломался. В файле проекта есть возможность задать компилятору флаг -pg через QMAKE_CXXFLAGS_DEBUG, судя по выводу компилятора, этот флаг до него успешно доходит, но линковщик ругается "undefined reference to mcount". Я так понимаю, во всем виновата система метакомпиляции, хотя,
Не с первого раза у меня получилось
Заработало после того, как я добавил следующие строчки в конец pro-файла:
QMAKE_CXXFLAGS_DEBUG += -g3 -pg
LIBS += -pg -lgmon
После запуска бинарника будет создан gmon.out
Здравствуйте, Alexey F, Вы писали:
AF>AF>QMAKE_CXXFLAGS_DEBUG += -g3 -pg
AF>LIBS += -pg -lgmon
AF>
Всё же лучше так:
QMAKE_CXXFLAGS_DEBUG += -g3 -pg
QMAKE_LFLAGS_DEBUG += -pg -lgmon