2010-06-15 82 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