当我尝试编译 QT 项目时,出现以下错误: g++:致命错误:无法执行“d21”:execvp:没有这样的文件或目录 我还尝试在编译时包含文件的完整路径,但发生了相同的错误。为了确保版本不匹配,我查找了 gcc 和 g++ 版本,但两者都是相同的,gcc/g++ 版本:9.4.0。
当我尝试编译 QT 项目时,出现以下错误: g++:致命错误:无法执行“d21”:execvp:没有这样的文件或目录。
d21 是 D 编程语言 GCC 驱动程序。您需要在GCC中安装GDC、D编程语言支持。
我自己在使用
cmake
Ninja 生成器构建应用程序时遇到了此错误。 DEP_FILE
之前的变量在其字符串值中包含换行符,这导致 gcc
尝试将依赖文件视为 D 源文件。
对我来说,修复方法是将
OUTPUT_STRIP_TRAILING_WHITESPACE
添加到 execute_process
命令中,该命令在 cmake
中生成有问题的变量。
我建议检查生成的构建文件,如
build.ninja
(如果您使用的是 Ninja 生成器),看看您是否遇到类似的问题。或者从生成错误的命令行中可以明显看出正在发生某些变量损坏。
您可能还会发现,如果您使用不同的
cmake
生成器,问题就会消失(假设您正在构建 cmake
项目)。