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

如何解决GPROF分析时出现的‘go2: No such file or directory’错误?

解决GPROF提示"go2: No such file or directory"的问题

问题背景

我编写了名为main.c的C代码:

#include <stdio.h>

int add(int a, int b) {
    int result = a + b;
    return result;
}

int subtract(int a, int b) {
    int result = a - b; // Bug: Change to a + b to introduce a bug
    return result;
}

int main() {
    int x = 5;
    int y = 3;
    int z;
    int sum = add(x, y);
    printf("Sum: %d\n", sum);

    int difference = subtract(x, y);
    printf("Difference: %d\n", difference);

    return 0;
}

执行编译命令gcc -o go2 main.c -lm -pg成功,运行./go2也正常,但执行gprof go2 -p时出现错误:

go2: No such file or directory

解决方案

这个错误的核心是gprof找不到指定的可执行文件go2,按以下步骤排查解决:

  • 检查当前工作目录
    执行pwd查看当前所在路径,再用ls确认go2是否在这个目录下。如果不在,说明你在错误的目录下执行gprof命令。

  • 切换到可执行文件所在目录
    假设go2生成在~/code目录,先切换目录:

    cd ~/code
    

    然后再运行gprof命令:

    gprof go2 -p
    
  • 使用绝对路径指定可执行文件
    如果不想切换目录,直接传入go2的完整绝对路径即可,比如:

    gprof /home/yourname/code/go2 -p
    
  • 额外注意:gmon.out文件的位置
    程序运行时会在当前工作目录生成gmon.out文件,如果你运行go2和执行gprof的目录不同,需要把gmon.out复制到gprof所在目录,或者在命令中指定它的路径:

    gprof /path/to/go2 /path/to/gmon.out -p
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:20:06