У меня убунту 16.04.
Вот что я сделал:
установил gperftools:
sudo apt-get install google-perftools libgoogle-perftools-dev
скачал FindGperftools.cmake с: https://github.com/vast-io/vast/blob/master/cmake/FindGperftools.cmake
переименовал
FindGperftools.cmake
вGperftoolsConfig.cmake
и поместил в папкуcmake
в моем пакетедобавлено в
CMakelists.txt
:set (Gperftools_DIR "${CMAKE_CURRENT_LIST_DIR}/cmake/") find_package(Gperftools REQUIRED)
в том же CMakelists.txt свяжите мой исполняемый файл:
target_link_libraries(my_executable ${GPERFTOOLS_PROFILER})
в терминале экспортируйте переменную среды CPUPROFILE:
export CPUPROFILE=/my_path/prof.out
в том же терминале запустите исполняемый файл:
./my_executable
Сообщение об ошибке отсутствует, но файл журнала /my_path/prof.out
не создается.
Если я запускаю «ldd» для «my_executable», он не показывает никакой связи с профилировщиком (ldd ./my_executable | grep profil
ничего не дает). Тем не менее, при просмотре файлов в папке сборки компилятор, кажется, выполняет связь (там -lprofile
).
Может я что забыл?
Примечание: не уверен, что это уместно, но я использую сережку.
find_package_handle_standard_args
, используемый в скрипте Find, не имеет смысла в скрипте Config. Для поиска самого скрипта Find установите переменную CMAKE_MODULE_PATH CMake. - person Tsyvarev   schedule 04.03.2018Gperftools_ROOT_DIR
Set this variable to the root installation of Gperftools
Что отличается отGperftools_DIR
из вашего ответа. - person benathon   schedule 09.08.2018