MinGW sh.exe一定不能挡在你的路上



目前正在尝试使用 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 MakefilesCMake生成器。 将此添加到您的 CMake 行:

-G "CodeBlocks - MinGW Makefiles"

不完全是这个设置(从这里的终端工作),但得到同样的错误。就我而言,sh.exe在我的路径中,而是内置于我正在使用的终端 (cmder) 中。切换到常规CMD对我有用。

最新更新