如何设置gperftools路径变量GPERFTOOLS_LIBRARIES GPERFTOOLS_INCLUDE_DIR?

时间:2016-11-20 17:02:33

标签: cmake catkin

在一个catkin项目中,catkin_make失败了。 CMakeLists包括

find_package(Gperftools REQUIRED) 

我已经安装了google-perftools:

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

CMake Error表示无法找到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)

经过几个小时的搜索后,我还没有找到设置说明。有人可以解释我如何解决这个错误吗?

提前致谢,我希望我已经为这个问题提供了足够的信息。

干杯, 迈克尔

3 个答案:

答案 0 :(得分:2)

不确定您使用哪个脚本FindGperftools.cmake,但this one搜索了库tcmalloc_and_profiler和标题gperftools/heap-profiler.h

但打包google-perftools doesn't provide这些文件。 (实际上,此软件包不提供任何标头或库。)

该库是providedlibgoogle-perftools4个包。可能应该有一些devel包提供标题。

答案 1 :(得分:1)

您需要提供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)

答案 2 :(得分:0)

我使用Ubuntu 16.04,并且与您有相同的问题。我认为问题在于缺少某些软件包:

sudo apt-get install gperf  libgoogle-perftools-dev

已经解决了我的问题,您可以尝试一下。