在 msysgit 中运行 MinGW/MSYS 工具

Posted

技术标签:

【中文标题】在 msysgit 中运行 MinGW/MSYS 工具【英文标题】:Running MinGW/MSYS tools inside msysgit 【发布时间】:2012-12-16 18:47:01 【问题描述】:

我在 Windows 上使用 msysgit 已经有一段时间了,但我现在第一次尝试设置 MinGW。我用mingw-get 安装了MSYS,因为它有一些没有用msysgit 打包的工具(makexz 等)。

我在some threads 有一些用于在 MSYS shell 中运行 Git,但我更喜欢使用 msysgit shell,因为它将主目录映射到我的 Windows 并在提示符上显示 Git 信息。为了从我的 msysgit shell 访问 MinGW 和 MSYS 程序,我将以下内容添加到 .bashrc

export PATH=$PATH:/c/MinGW/bin/:/c/MinGW/msys/1.0/bin/

但是,运行任何 MSYS 实用程序会导致提示挂起,并以 Ctrl-C 结束它们会使该实用程序崩溃,并显示“x 已停止工作对话框”。如果我尝试在 MSYS shell 或 cmd.exe 中运行 utils,它们可以正常工作。

我必须用 msysigit 更改一些配置吗?可能出了什么问题?

【问题讨论】:

【参考方案1】:

我建议您只需将“Program Files (x86)\Git\cmd”目录添加到您的 msys shell 的路径中,然后像在 Windows cmd 提示符下一样使用它。这会将 git 包装器可执行文件添加到路径中,因此 git 可以在运行时调整其环境并避免干扰您的其他 msys 环境。仅添加 cmd 子目录意味着 Git for Windows 仅添加两个命令 - git 和 gitk。在 Windows 的 Git 中,有一个修改过的 msys,它可能与标准的 msys utils 不兼容。使用 cmd 包装器应该避免冲突。

【讨论】:

从 MSYS 运行 Git 而不是反过来运行 Git 可能会更好,但你知道为什么我不能从 msysgit 的 shell 中运行 MSYS 程序吗? 是的 - 我回答中的最后一句话指出 msysGit 使用的是修改后的 msys。那就是msys-1.0.dll打了补丁,可能和普通的msys utils不兼容。

以上是关于在 msysgit 中运行 MinGW/MSYS 工具的主要内容,如果未能解决你的问题,请参考以下文章

调试使用 mingw/msys2 构建的 Windows 服务

让 mingw-get 正确安装 - 缺少 mingw/msys 路径以及更多!

如何安装 MinGW-w64 和 MSYS2?

msys右键打开当前目录

Mingw+MSYS 中的 libevent 静态编译错误

使用 MinGW/MSYS 制作“xz-5.2.1”时出错