windows - 为什么 MinGW/MSys 会更改二进制路径?

标签 windows cmd mingw msys

我正在使用 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/

相关文章:

c++ - 如何防止在 argv 中丢失双引号?

c++ - 可变参数模板是否可以与当前的编译器一起正常工作?

windows - 为什么我的 Qt 4.5 应用程序在 Windows 下打开一个控制台窗口?

windows - 在 r 中并行使用 wordnet(与 windows 7)

c++ - 您的计算机中缺少 api-ms-win-core-winrt-string-l1-1-0.dll

java - 将带有空格分隔符的字符串转换为数组。并像字符串一样输出这个数组

windows - SSH 和 SCP 失败,错误为 "CreateProcessW failed error:2 posix_spawn: No such file or directory"

c++ - windows C++ 多线程

c++ - Windows 事件的等效 boost

ssh - 连接到代理 : no such file or directory - adding key to ssh agent 时出错