2010-06-15 30 views
6

GCC可以共存两个版本:本机窗口MinGW版本和cygwin linux版本?当在Cygwin上系统试图用MinGW版本的GCC进行编译时,事情就会出现问题,反之亦然。我如何保持GCC的两个版本?Cygwin上的GCC与MinGW共存

回答

3

精神调试表明你有一个或全部在你的全球路径。把两者都带出你的全局路径(gcc应该产生“错误的命令或文件名”或类似的从cmd.exe直接运行)并设置快捷方式,以便为每个快捷方式加载适当的环境。

4

我把他们俩安装在一起,和平共处。 Cygwin安装在c:\ cygwin中,而MinGW安装在c:\ msys \ mingw中。因为他们的环境是由他们各自的启动快捷方式设置的,所以我不必做任何不寻常的事情来使它们共存。

安装过程中必须有一些特定的步骤,导致它们以某种方式耦合在一起。如果你描述你的安装顺序和位置,也许有人可以提供额外的建议。

4

我将它们分开的方式是默认情况下使用Cygwin环境。 MinGW的东西不在我的默认路径中,我不使用任何MSYS程序。对于日常使用,您无法判断我是否安装了MinGW。

在当我需要测试与MinGW的一些罕见的情况下,我从运行在Cygwin Bash提示符,我称之为mingw这个shell脚本:

#!/bin/sh 
PATH=/cygpath/c/mingw/bin:/cygpath/c/windows/system32:/cygpath/c/cygwin/bin 
echo "Say 'exit' to leave MinGW shell and restore Cygwin environment." 
/usr/bin/bash --rcfile ~/.mingwrc 

调整路径的味道。唯一重要的是它将MinGW bin目录放在Cygwin bin目录的前面。你可能还是要在PATH Cygwin的bin目录中的VI,LS等

该脚本的最后一行运行此脚本,~/.mingwrc

alias make=mingw32-make 
PS1='MinGW: \W \$ ' 

不能同时使用这两个脚本因到Bash的工作方式。第二个脚本包含只有在“MinGW外壳”运行后才会发生的事情。 PS1的任务提醒你,你在MinGW shell中,并且别名确保键入“make”运行MinGW自己的make(1)程序而不是Cygwin的程序,因为我的MinGW Makefiles使用DOS命令而不是Bourne shell命令,是GNU make的MinGW端口的一个不同之处。如果你想在Cygwin make中使用MinGW编译器,你会留下别名。

当您退出MinGW子shell时,您将恢复先前的PS1,PATH和别名。

3

将两者都带出全球路径。然后创建一个新的文件*.cmd用下面的(需要Cygwin的为例):

@echo off 
rem file: start cmd with cygwin's path 
cmd.exe /k path=C:\cygwin\bin;%path% 

您可以在命令窗口中键入path检查。

现在你可以使用cygwin了。该环境仅在cmd.exe内有效。

+0

对我而言最佳。 – iab 2013-09-10 12:11:19