更改 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
,将cd
s 指向所需的目录。
【讨论】:
.bashrc 被忽略,mingw 只自带 /bin/sh (没有 bash) 对于桌面的挂载点,必须在 c:\MinGW\msys\1.0\etc\fstab C:\DOKUME~1\/etc/profile
也应该与股票 sh 一起使用。【参考方案7】:
如果有人知道如何像 cygwin 一样将“真正的”符号链接放置到 ntfs 驱动器,这也会很有帮助。 mingw 复制内容,在处理颠覆目录时没有用。
Cygwin 不放置真正的符号链接。
【讨论】:
以上是关于更改 mingw 的启动目录或创建 mingw 符号链接的主要内容,如果未能解决你的问题,请参考以下文章
在 windows7 上使用 mingw32 编译 Qt 4.8.5:“没有这样的文件或目录”
x86_64-w64-mingw32-gcc.exe:错误:CreateProcess:没有这样的文件或目录