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

Fedora 38下rpmbuild构建debuginfo包失败:debugsourcefiles.list为空

解决Fedora 38中rpmbuild构建debuginfo包时find-debuginfo找不到源文件的问题

排查与解决步骤

1. 确保编译时生成调试信息

编译过程必须保留调试符号,否则find-debuginfo无法提取有效信息:

  • 若使用autotools,配置时添加--enable-debug参数:
    ./configure --enable-debug
    
  • 若使用CMake,指定构建类型为RelWithDebInfo或Debug:
    cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
    
  • 手动编译时需添加-g参数:
    gcc -g -o myprogram myprogram.c
    

2. 验证源码解压路径与调试信息中的路径匹配

用readelf查看二进制文件中的调试信息路径,确认与BUILD目录下的源码路径一致:

readelf -w %{_builddir}/mysoft-8.19.0/bin/myprogram | grep "DW_AT_name"

对比输出的源文件路径,检查BUILD目录下是否存在对应文件。如果路径不匹配,可在%prep阶段调整解压方式,比如使用%setup -n mysoft-8.19.0确保解压目录名称与版本一致。

3. 手动调用find-debuginfo.sh指定源目录

若自动检测失败,可在%install阶段后手动指定源码目录运行find-debuginfo.sh:

%install
# 你的安装命令
%{_rpmconfigdir}/find-debuginfo.sh --source-dir %{_builddir}/mysoft-8.19.0 %{buildroot}

4. 手动运行find-debuginfo.sh排查错误

直接在BUILD目录下运行find-debuginfo.sh,查看具体错误提示:

cd %{_builddir}/mysoft-8.19.0
%{_rpmconfigdir}/find-debuginfo.sh .

根据输出判断是二进制文件无调试信息,还是源文件路径无法匹配。

5. 检查rpmbuild宏定义正确性

确认rpmbuild的路径宏指向正确:

rpm --showrc | grep -E "_rpmtopdir|_builddir"

确保%{_builddir}指向的目录与你解压源码的路径一致。

内容的提问来源于stack exchange,提问作者Henry Fané

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:47:24