Как установить переменные пути gperftools GPERFTOOLS_LIBRARIES GPERFTOOLS_INCLUDE_DIR?

В проекте catkin catkin_make терпит неудачу. CMakeLists включает

find_package(Gperftools REQUIRED) 

Я установил google-perftools:

google-perftools is already the newest version (2.4-0ubuntu5)

Ошибка CMake говорит, что не может найти gperftools или, по крайней мере, переменные пути:

CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Gperftools (missing: GPERFTOOLS_LIBRARIES
  GPERFTOOLS_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  tuw_mpn/FindGperftools.cmake:39 (find_package_handle_standard_args)
  tuw_mpn/CMakeLists.txt:40 (find_package)

После нескольких часов поиска я не нашел описания установки. Может кто-нибудь объяснить, как я могу решить эту ошибку?

Заранее спасибо, и я надеюсь, что предоставил достаточно информации для этой проблемы.

Привет, Майкл


person mkoller    schedule 20.11.2016    source источник
comment
Общий совет, как научить CMake находить библиотеки: stackoverflow.com/q/39126648/2799037 Если это не поможет, вы должны спросить более конкретно. Вы когда-нибудь удаляли каталог кеша/сборки CMake и пытались снова?   -  person usr1234567    schedule 20.11.2016


Ответы (3)


Не знаю, какой скрипт FindGperftools.cmake вы используете, но этот ищет библиотеку tcmalloc_and_profiler и заголовок gperftools/heap-profiler.h.

Но пакет google-perftools не предоставляет эти файлы. (На самом деле этот пакет не предоставляет никаких заголовков или библиотек.)

Библиотека предоставляется пакетом libgoogle-perftools4. Вероятно, должен быть какой-то пакет разработки, который предоставляет заголовок.

person Tsyvarev    schedule 20.11.2016

Вам необходимо предоставить FindGperftools.cmake

Например, из: https://github.com/vast-io/vast/blob/master/cmake/FindGperftools.cmake

В CMakeLists.txt добавьте следующее:

# set the path to the library folder
link_directories(/usr/local/lib)

#Append Gperftools_DIR 
LIST(APPEND CMAKE_MODULE_PATH "/DirectoryWhereTheFindGperftools.cmakeIs")

find_package(Gperftools REQUIRED)
person Arnox    schedule 05.04.2017

Я использую Ubuntu 16.04 и у меня те же проблемы, что и у вас. Я думаю, проблема в отсутствии некоторых пакетов:

sudo apt-get install gperf  libgoogle-perftools-dev

решил мои проблемы, вы можете попробовать.

person TanLingxiao    schedule 10.07.2018