配置Eclipse以使用bash登录shell进行Cygwin工具链

时间:2013-01-31 18:55:18

标签: eclipse bash cygwin

我在Eclipse中有一个自定义Makefile项目,虽然构建确实在Cygwin shell中运行...它似乎不是一个登录shell(bash --login),因为它没有设置我的运行cygwin.bat等环境变量。

在Eclipse中我可以更改shell命令以使其成为登录shell吗?

1 个答案:

答案 0 :(得分:2)

bash --login 的实际目标是来自 / etc / profile 的设置。

在UNIX下,您通常只有一个登录shell,因此所有其他shell都会继承这些设置。在Windows下,任何Bash窗口都是一个isoloated登录shell,当从运行 bash 的工具作为命令处理器运行Bash时,这会导致缺少环境设置。

我遇到了与Emacs编译功能类似的问题。 Windows下的最佳解决方案是将环境变量BASH_ENV设置为脚本。 Bash将在没有 -i - login 的情况下启动时执行此脚本,因此 / etc / profile 不会运行。因此,脚本将为非交互式非登录shell设置Bash。

示例:

BASH_ENV=%USERPROFILE%\.bash_env

作为用户环境变量。此脚本中要做的最少的事情是在 / etc / profile 中设置 PATH

PATH="/usr/local/bin:/usr/bin:${PATH}"

检查/etc/profile中的路径设置,因为它是由Cygwin的 setup.exe 创建的。您也可以从~/.bashrc复制设置或者输入此脚本。

希望这有帮助。