【问题标题】:How to set gperftools path variables GPERFTOOLS_LIBRARIES GPERFTOOLS_INCLUDE_DIR?如何设置 gperftools 路径变量 GPERFTOOLS_LIBRARIES GPERFTOOLS_INCLUDE_DIR?
【发布时间】:2017-04-04 01:24:58
【问题描述】:

在 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)

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

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

干杯, 迈克尔

【问题讨论】:

  • 关于如何教 CMake 查找库的一般建议:stackoverflow.com/q/39126648/2799037 如果这没有帮助,您必须询问更具体的问题。您是否曾经删除过您的 CMake 缓存/构建目录并再次尝试过?

标签: cmake catkin


【解决方案1】:

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

但是打包google-perftoolsdoesn't provide这些文件。 (实际上,这个包没有提供任何头文件或库。)

库是providedlibgoogle-perftools4 包。可能应该有一些提供标题的开发包。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我使用的是 Ubuntu 16.04,遇到了同样的问题。我认为问题在于缺少一些软件包:

      sudo apt-get install gperf  libgoogle-perftools-dev
      

      已经解决了我的问题,你可以试试。

      【讨论】:

        猜你喜欢
        • 2011-11-21
        • 1970-01-01
        • 1970-01-01
        • 2018-01-04
        • 2017-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-08
        相关资源
        最近更新 更多