我正在使用 Mingw 构建一个 C/C++ 项目。这个项目的 makefile 超出了我的理解范围,并且依赖于自定义且相当复杂的工具链来编译它。在 Windows 上使用 GNU 工具非常方便,尤其是在 Windows 的 cmd shell 中,但是在调用这些工具(特别是 make)时,MinGW 似乎改变了我的 PATH。
Cmd 正常执行:
echo %PATH% > ... c:\Apps\msys\bin ... (from cmd)
但是 msys 将此地址更改为:
echo $PATH > ... /usr/bin ...
在 msys 中,即使我从 makefile 打印 PATH。结果,make 提示说它找不到诸如 make、uname、echo 之类的命令,你给它命名(没有双关语意)。
奇怪的是,很久以前我就设法让这个环境正常工作,但这是我记得第一次看到这个路径问题。我怎样才能让 MinGW/msys 正确指向它的可执行文件?
最佳答案
richard 说的有道理——有两个不同的 shell 在争夺环境变量(更不用说运行 msys 了),所以每个 shell 都以不同的方式解析自己的环境变量和系统的环境变量。
还要确保在您的用户或系统环境中定义的变量被正确写入 - Windows 喜欢“C:\foo\bar”风格的路径,但 Msys 将它们视为“/c/foo/bar”。
关于windows - 为什么 MinGW/MSys 会更改二进制路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11181038/