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

编译QT项目时遇g++错误:无法执行‘d21’,execvp无此文件或目录

解决g++无法执行'd21'的QT编译错误

排查及解决步骤

  • 检查命令拼写错误:
    错误中的d21大概率是配置或命令的拼写失误,比如可能是链接器ld、汇编器as这类工具的误写。检查项目的.pro文件、编译脚本或QT的编译配置,确认是否有错误指定工具链组件的情况。

  • 验证gcc工具链完整性:
    即便gcc和g++版本匹配,也可能存在工具链组件缺失的情况。执行以下命令检查关键组件是否存在:

    which ld
    which as
    which cpp
    

    如果某个组件找不到,重新安装完整的gcc工具链(例如Ubuntu系统执行sudo apt install --reinstall gcc g++)。

  • 重置QT的mkspecs配置:
    QT的编译配置文件(如Qt安装目录/mkspecs/linux-g++)可能被错误修改,导致调用了不存在的d21工具。可以恢复默认配置,或者在qmake时显式指定正确的工具路径:

    qmake -spec linux-g++ QMAKE_CC=/usr/bin/gcc QMAKE_CXX=/usr/bin/g++
    
  • 清理编译缓存后重新构建:
    残留的编译缓存可能保留错误配置,执行以下命令清理后重新编译:

    make clean
    qmake
    make
    
  • 检查环境变量设置:
    确认CC、CXX环境变量未被错误赋值,同时PATH路径中没有混入无效的工具目录:

    echo $CC
    echo $CXX
    echo $PATH
    

    若发现异常,修正后重启终端再尝试编译。


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

相关产品推荐
方舟 Agent Plan

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

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