目前正在尝试使用 MinGW 在 Windows 上设置我的 C 开发环境,看起来 CMAKE 给了我以下错误:
sh.exe was found in your PATH, here:
C:/Program Files/Git/user/bin/sh.exe
For MinGW make to work correctly sh.exe must NOT be in your path.
Run cmake from a shill that does not have sh.exe in your PATH.
If you want to use a UNIX shell, then use MSYS Makefiles
该错误在CLion IDE中抛出。我不确定我是否需要更改 CLion 内部的设置还是什么。我查看了我的窗口路径,我没有看到任何对sh.exe的引用。
我的路径如下:
C:Program Files (x86)Razer Chroma SDKbin;C:Program FilesRazer Chroma SDKbin;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Windowssystem32configsystemprofileAppDataLocalMicrosoftWindowsApps;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program Files (x86)Nodistbin;C:UserswesleAppDataLocalMicrosoftWindowsApps;
对我来说,传递给cmake的这个简单参数-DCMAKE_SH="CMAKE_SH-NOTFOUND"
有效。
通过打开Windows 命令行并键入where sh.exe
来检查您的PATH
中是否确实没有sh.exe
。如果您的路径中有此文件,则该命令将返回其路径(然后您应该将其从PATH
中删除)否则,如果 Windows 返回未找到它,请尝试清理文件夹CMakeFiles
和文件名CMakeCache.txt
在项目文件夹中的某个位置。
只需添加
set(DCMAKE_SH="CMAKE_SH-NOTFOUND")
到您的
CMakeLists.txt file
这是你的 git 路径的问题。
我假设您正在使用 Clion,只需检查您是否在路径中添加了%gitpath%bin
,这就是问题所在。你应该改用%gitpath%cmd
,通常对我来说它是D:Gitcmd
.由于前者在您的路径中包含sh.exe
,从而导致错误。
我喜欢@Elia的答案,但如果你使用的是CLion,它使用没有sh.exe
检查问题的CodeBlocks - MinGW Makefiles
CMake生成器。 将此添加到您的 CMake 行:
-G "CodeBlocks - MinGW Makefiles"
不完全是这个设置(从这里的终端工作),但得到同样的错误。就我而言,sh.exe
不在我的路径中,而是内置于我正在使用的终端 (cmder) 中。切换到常规CMD对我有用。