更改 mingw 的启动目录或创建 mingw 符号链接

Posted

技术标签:

【中文标题】更改 mingw 的启动目录或创建 mingw 符号链接【英文标题】:changing mingw' startup directory or creating mingw symlinks 【发布时间】:2011-08-09 17:50:40 【问题描述】:

设置mingw的控制台启动目录最简单的方法是什么?我只使用 mingw 进行编译。但由于缺乏编辑器甚至符号链接,我很困惑如何告诉 mingw 控制台出现在不同的目录而不是常规主目录中。

如果有人知道如何像 cygwin 那样将“真正的”符号链接放置到 ntfs 驱动器上,那也会很有帮助。 mingw 复制内容,在处理颠覆目录时没有用。

我是一个懒惰的人,我发现一直做 cd /c/Documents/USER/.../Project 很痛苦:>

【问题讨论】:

【参考方案1】:

如果其他人发现这篇文章正在寻找答案,那么对我有用的是

    如果快捷方式不存在,请创建快捷方式。可以在您的桌面或任务栏上。 右键单击 >> 属性 >>并更改Start in:值。 使用快捷方式并立即在您的项目目录中启动。

我的桌面上有多个用于各种项目的快捷方式,因此我可以在每个目录中快速启动终端并开始工作!

【讨论】:

我已经为 git-bash shell 做了这个,它似乎可以工作。 很好的提示,但这仅在我在“C:\MinGW\msys\1.0\etc\profile”中注释掉 cd $HOME 时才对我有用。 cd $HOME 是“profile”中最后一个非注释行。欲了解更多信息see this post on SuperUser 这当然可行,但就我而言,我还必须从 git-bash 快捷方式的“目标”字段中的 "C:\Program Files\Git\git-bash.exe" --cd-to-home 中删除 --cd-to-home 参数。【参考方案2】:

我认为这是最简单的方法:

打开外壳

vim .profile (ESC / i 进入插入模式)

#!/bin/bash

cd /c/Users/jbr

(ESC / wq 写入并关闭编辑器)

测试 .profile bash 文件:source .profile

关闭并重新打开外壳。

享受, 法巴

【讨论】:

如果你要关闭并重新打开 shell,你不必source 文件,但它肯定不会有什么坏处。 喜欢这个解决方案【参考方案3】:

默认情况下,当我启动 install location of MinGW\msys\1.0\msys.bat 时,shell 会在文件夹 install location of MinGW\msys\1.0\home\jbr 中启动。

我创建了一个文件install location of MinGW\msys\1.0\home\jbr\.profile,其中包含:

# Cd to my windows home:
cd /c/Users/jbr

现在当我打开一个新的 shell msys.bat;我在正确的位置:

这对我有用。

【讨论】:

【参考方案4】:

我找到了以下解决方案,我不想要挂载点,我明确希望可以从我当前所在的任何目录(工作目录)开始,所以我制作了一堆脚本。

它们可以工作,但仍然存在包含空格的路径问题(对不起):

bash.bat

将它放在你的路径中,以便你可以从 cmd.exe 运行它

@echo off

set STARTUP_DIR=%CD%

D:\MinGW\msys\1.0\bin\bash.exe --login

**确保你有一个名为 HOME 的环境变量集,它指向你想要的主用户目录(必须没有空格!!)在我的例子中是 D:\Users\Myname

.bashrc

把它放在你的主目录中

if [[ "$STARTUP_DIR" != "$PWD" ]]; then
  cd $STARTUP_DIR
fi

现在,考虑到 bash.exe 将运行 .bash_profile 而不是 .bashrc,我在主目录中添加了这个:

.bash_profile

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

我使用 Console2,所以我可以将我的 bash.bat 文件设置为启动 shell,这就是我所需要的。

【讨论】:

【参考方案5】:

我编辑了 C:\MinGW\msys\1.0\etc\profile 并将第 32 行更改为:

# Set up USER's home directory
if [ -z "$HOME" ]; then
  HOME="/home/$LOGNAME"
fi

到:

  HOME="/c/Users/$LOGNAME"

现在,当我打开 MinGW (msys) 时,它使用默认的 Windows 主文件夹。这会启用~/.profile~/.ssh 等功能。

【讨论】:

【参考方案6】:

使用挂载点而不是符号链接。 mingw 不支持 ntfs 符号链接(无论如何它们都是新的),但对于大多数用例(例如简单访问您在 mingw 外部工作的目录)来说,挂载点都可以。

设置新的默认目录最简单的方法可能是在主目录中使用.bashrc,将cds 指向所需的目录。

【讨论】:

.bashrc 被忽略,mingw 只自带 /bin/sh (没有 bash) 对于桌面的挂载点,必须在 c:\MinGW\msys\1.0\etc\fstab C:\DOKUME~1\\Desktop /home//desktop(德语安装) 感谢您的更正(re .bashrc)和补充(re fstab)。我有一些 msys 的重要部分,包括 bash,有点假设它是 mingw 的一部分。 /etc/profile 也应该与股票 sh 一起使用。【参考方案7】:

如果有人知道如何像 cygwin 一样将“真正的”符号链接放置到 ntfs 驱动器,这也会很有帮助。 mingw 复制内容,在处理颠覆目录时没有用。

Cygwin 不放置真正的符号链接。

【讨论】:

以上是关于更改 mingw 的启动目录或创建 mingw 符号链接的主要内容,如果未能解决你的问题,请参考以下文章

求助,无法启动进程"mingw32-make.exe

在 windows7 上使用 mingw32 编译 Qt 4.8.5:“没有这样的文件或目录”

如何更改 MSYS2 上的 HOME 目录和启动目录?

x86_64-w64-mingw32-gcc.exe:错误:CreateProcess:没有这样的文件或目录

致命错误:glib.h:使用 vscode 和 mingw 时没有这样的文件或目录

Mingw-w64:ssh-add 工作直到 git fetch(连接到代理时出错:文件描述符错误)