CLion 无法运行程序“make” 系统找不到指定的文件

Teh*_*rez 6 makefile jetbrains-ide mingw-w64 msys2 clion

在 CLion 中打开 makefile 项目时,我收到错误消息:

Cannot run program "make" (in directory "D:\Werkstudent\XWF\XT_Einzelauswertung"): CreateProcess error=2, The system cannot find the file specified: CreateProcess error=2, The system cannot find the file specified
Make execution failed with exit code = 127
Run Code Online (Sandbox Code Playgroud)
  • 我使用的是 mingw64,在 Windows 上与 msys2 一起安装。
  • mingw-w64-x86_64-toolchain已安装。
  • Build, Execution, Deployment -> Toolchains我添加了 MinGW 和 Environment C:\msys64\mingw64。Make、C 编译器和 C++ 编译器都被正确检测到。
  • Build, Execution, Deployment -> Build Tools -> Make我已将可执行文件的路径设置为C:\msys64\mingw64\bin\mingw32-make.exe.

CLion的相关调试日志:

2020-11-23 10:01:57,997 [ 244797]   INFO - System.util.ExternalSystemUtil - External project [D:/Werkstudent/XWF/XT_Einzelauswertung] resolution task started
2020-11-23 10:01:57,997 [ 244797]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile analysis started at: 10:01:57 id: analysis:aa0e0ae1-8957-4100-b93e-e389cbdb8646
2020-11-23 10:01:59,285 [ 246085]   INFO - om.jetbrains.cidr.cpp.makefile - MakefileResolverState: Starting make: make clean
2020-11-23 10:01:59,293 [ 246093]  DEBUG - om.jetbrains.cidr.cpp.makefile - Channel closed coroutine name = StandaloneCoroutine{Completed}@60fcd138
2020-11-23 10:01:59,295 [ 246095]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile constructor message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.ConstructorAnalysisError(Make execution failed with exit code = 127)
2020-11-23 10:01:59,305 [ 246105]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile analyzer message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.MakeExecutionError(Make execution failed with exit code = 127)
2020-11-23 10:01:59,315 [ 246115]   INFO - om.jetbrains.cidr.cpp.makefile - MakefileResolverState: Starting make: make --just-print --print-directory --keep-going all
2020-11-23 10:01:59,330 [ 246130]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile constructor message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.CriticalConstructorAnalysisError(Cannot run program "make" (in directory "D:\Werkstudent\XWF\XT_Einzelauswertung"): CreateProcess error=2, The system cannot find the file specified)
2020-11-23 10:01:59,331 [ 246131]  DEBUG - om.jetbrains.cidr.cpp.makefile - Channel closed coroutine name = StandaloneCoroutine{Completed}@742f7782
2020-11-23 10:01:59,330 [ 246130]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile analyzer message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.CriticalAnalysisFailure(Cannot run program "make" (in directory "D:\Werkstudent\XWF\XT_Einzelauswertung"): CreateProcess error=2, The system cannot find the file specified)
2020-11-23 10:01:59,331 [ 246131]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile analyzer message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.MakeExecutionError(Make execution failed with exit code = 127)
2020-11-23 10:01:59,331 [ 246131]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile constructor message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.ConstructorAnalysisError(Make execution failed with exit code = 127)
2020-11-23 10:01:59,361 [ 246161]   INFO - om.jetbrains.cidr.cpp.makefile - make exited with code 127
2020-11-23 10:01:59,361 [ 246161]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile constructor message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.ConstructorAnalysisError(Make execution failed with exit code = 127)
2020-11-23 10:01:59,361 [ 246161]  DEBUG - om.jetbrains.cidr.cpp.makefile - Channel closed coroutine name = StandaloneCoroutine{Completed}@63439922
2020-11-23 10:01:59,371 [ 246171]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile analyzer message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.MakeExecutionError(Make execution failed with exit code = 127)
2020-11-23 10:01:59,371 [ 246171]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile constructor message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.ConstructorAnalysisError(Cannot run program "make" (in directory "D:\Werkstudent\XWF\XT_Einzelauswertung"): CreateProcess error=2, The system cannot find the file specified)
2020-11-23 10:01:59,381 [ 246181]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile analyzer message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.TargetsAnalyzerError(Cannot run program "make" (in directory "D:\Werkstudent\XWF\XT_Einzelauswertung"): CreateProcess error=2, The system cannot find the file specified)
2020-11-23 10:01:59,382 [ 246182]  DEBUG - om.jetbrains.cidr.cpp.makefile - Channel closed coroutine name = StandaloneCoroutine{Completed}@a7d27cb
2020-11-23 10:01:59,382 [ 246182]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile constructor message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.ConstructorAnalysisStatus(Makefile analysis finished. Success = false)
2020-11-23 10:01:59,383 [ 246183]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile constructor message: com.jetbrains.cidr.cpp.makefile.project.resolver.messages.CriticalConstructorAnalysisError(No compilation commands found)
2020-11-23 10:01:59,386 [ 246186]  DEBUG - om.jetbrains.cidr.cpp.makefile - Channel closed coroutine name = StandaloneCoroutine{Completed}@258f8a01
2020-11-23 10:01:59,386 [ 246186]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile constructor message: ModuleStructureMessage(moduleStructure=ModuleData: XT_Einzelauswertung)
2020-11-23 10:01:59,387 [ 246187]  DEBUG - om.jetbrains.cidr.cpp.makefile - Makefile analysis finished at: 10:01:59 id: analysis:aa0e0ae1-8957-4100-b93e-e389cbdb8646
result: failure
2020-11-23 10:01:59,387 [ 246187]  DEBUG - om.jetbrains.cidr.cpp.makefile - Channel closed coroutine name = StandaloneCoroutine{Completed}@66027050
2020-11-23 10:01:59,416 [ 246216]   INFO - System.util.ExternalSystemUtil - External project [D:/Werkstudent/XWF/XT_Einzelauswertung] resolution task executed in 1419 ms.
2020-11-23 10:01:59,778 [ 246578]   INFO - ge.ExternalProjectsDataStorage - Save external projects data in 20 ms
Run Code Online (Sandbox Code Playgroud)

我做错了什么,为什么 CLion 找不到 make 可执行文件?

Teh*_*rez 5

好的找到了解决方案。

@uta 的评论有点正确。CLion 可以找到 make 可执行文件,但 make 依赖于一堆它找不到的其他 coreutils。

所以我必须将C:\msys64\mingw64\bin和添加C:\msys64\usr\bin到我的 Windows 路径中。

我是怎么想出来的?mingw32-make在 mingw 终端中执行效果很好。
所以我mingw32-make clean在 CLion 内的终端中执行,这给了我所描述的错误。因此错误消息不是来自 CLion,而是来自make命令本身。
之后,我尝试仅在 CLion 内将这两个路径添加到 PATH,但我找不到它的选项。所以最终我不得不将其添加到系统环境变量中。还不知道这是否会因为可执行文件名称的冲突而造成其他混乱。

哦,现在我在“配置项目”步骤中遇到错误,可能是因为解析错误。