You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu16.04下CMake链接gperftools失败,无性能日志生成

排查Ubuntu 16.04下gperftools CPU Profile日志未生成的问题

我来帮你排查Ubuntu 16.04下gperftools CPU profiling日志没生成的问题——我之前在这个版本的系统上折腾过类似的情况,咱们一步步捋清楚可能的问题点:

1. 先确认gperftools安装是否完整

Ubuntu 16.04上安装gperftools时,别只装基础包,一定要把开发依赖也装上,不然编译链接的时候会缺文件:

sudo apt-get install gperftools libgoogle-perftools-dev

你可以检查下/usr/lib/x86_64-linux-gnu下有没有libprofiler.so和libprofiler.a,确认安装到位。

2. CMake配置环节的细节检查

你提到把FindGperftools.cmake重命名为GperftoolsConfig.cmake放到包内cmake文件夹,这里有两个容易忽略的点:

  • 要让CMake能找到这个配置文件,得先在CMakeLists.txt里把你的cmake目录加入模块搜索路径:
    set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
    
    不然CMake会默认去系统路径找,根本看不到你放的自定义配置文件。
  • 链接可执行文件时要确保配置正确,完整的CMake代码应该类似这样:
    find_package(Gperftools REQUIRED)
    include_directories(${GPERFTOOLS_INCLUDE_DIR})
    target_link_libraries(你的可执行文件名 ${GPERFTOOLS_PROFILER})
    
    编译时留意CMake的输出日志,确认它成功找到了gperftools的库和头文件,没有报错信息。

3. 环境变量与运行环节的关键坑点

你说导出了CPUPROFILE但没生成日志,这部分是最容易踩坑的:

  • 路径必须是绝对路径,且你有写权限!比如你指定的/my_path/prof,要先确保/my_path目录存在,而且当前用户能写入:
    mkdir -p /my_path
    chmod 755 /my_path
    
    用相对路径很容易出问题,比如程序运行的工作目录和你想生成日志的目录不一致。
  • 环境变量要和程序在同一个终端会话里生效:如果你是临时导出,要先执行export CPUPROFILE=/my_path/prof.log,紧接着在同一个终端运行你的程序;如果是写到.bashrc里,记得执行source ~/.bashrc让配置生效后再运行。
  • 程序要正常退出!gperftools默认是在程序正常结束时才写入日志,如果你用Ctrl+C强制终止,日志可能不会生成。如果你的程序是长期运行的,可以在代码里手动调用ProfilerStop()触发写入:
    #include <gperftools/profiler.h>
    // 在合适的地方(比如程序退出前)调用
    ProfilerStop();
    
  • 如果程序运行时间太短,gperftools可能来不及收集数据并写入日志,可以给程序加个延迟或者让它执行更多逻辑再测试。

4. 额外的调试手段

如果上面的步骤都试过还是不行,咱们用工具排查:

  • 用ldd检查可执行文件是否正确链接了profiler库:
    ldd 你的可执行文件名 | grep profiler
    
    如果输出里有libprofiler.so.0之类的条目,说明链接成功;如果没有,那就是CMake配置环节出了问题,得回去重新检查链接步骤。
  • 也可以绕开CMake链接,直接用动态预加载的方式测试:
    export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libprofiler.so
    export CPUPROFILE=/my_path/prof.log
    ./你的可执行文件名
    
    这种方式如果能生成日志,说明是你CMake配置里的链接逻辑有问题;如果还是不行,那就是环境或者gperftools本身的安装问题。

内容的提问来源于stack exchange,提问作者Vince

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:15:39