编译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
相关产品推荐
相关产品推荐

