我正在使用Mingw来构建C/C++项目。该项目的makefile超出了我的理解范围,并且依赖于自定义且非常复杂的工具链进行编译。在Windows上(尤其是从Windows的cmd shell中)提供GNU工具非常方便,但是在调用工具(特别是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正确指向其可执行文件?
最佳答案
理查德有一个观点-有两个不同的shell争用环境变量(更不用说运行msys了),因此每个 shell 分别解析其自身和系统的环境变量。
另外,还要确保正确编写了用户或系统环境中定义的变量-Windows喜欢“C:\foo\bar”样式的路径,但是Msys将它们视为“/c/foo/bar”。
关于windows - MinGW/MSys为什么更改二进制路径?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11181038/