执行脚本时GCC性能分析报错:无法创建/build目录
问题原因与解决方法
错误原因
这些报错来自GCOV代码覆盖率工具,是程序运行时尝试生成覆盖率数据文件(.gcda)时失败导致的,核心原因有以下几种:
- 编译阶段启用了代码覆盖率编译选项(如
-fprofile-arcs -ftest-coverage),但运行时当前用户没有权限创建或写入/build目录 /build目录本身不存在,导致无法生成后续路径下的.gcda文件- 环境变量(如
GCOV_PREFIX)配置了错误的输出路径,指向了无权限访问或不存在的目录
解决方法
- 不需要代码覆盖率时:重新编译程序,移除编译选项中的
-fprofile-arcs和-ftest-coverage,清除旧的编译产物后重新构建 - 需要保留代码覆盖率时:
- 先创建缺失的目录并配置权限:
sudo mkdir -p /build sudo chown $USER:$USER /build - 或者修改覆盖率数据输出路径到当前用户有权限的目录,运行程序前执行:
export GCOV_PREFIX=$HOME/coverage_output mkdir -p $HOME/coverage_output
- 先创建缺失的目录并配置权限:
- 临时禁用覆盖率输出:运行程序前执行以下命令跳过数据生成:
unset GCOV_PREFIX
内容的提问来源于stack exchange,提问作者Lukas Kretschmann
相关产品推荐
相关产品推荐

