2010-06-15 8 views
6

Możliwe jest współistnienie dwóch wersji GCC: natywna wersja Windows MinGW i wersja Cygwin Linux? Sprawy stają się problematyczne, gdy na Cygwin system próbuje skompilować się z wersją GCC MinGW i na odwrót. Jak mogę zachować obie wersje GCC?GCC na Cygwin współistniejący z MinGW

Odpowiedz

3

Psychiczne debugowanie sugeruje, że masz jedną lub obie na swojej globalnej ścieżce. Wyjdź z globalnej ścieżki (gcc powinno dać "złe polecenie lub nazwę pliku" lub podobny przebieg bezpośrednio z cmd.exe) i skonfigurować skróty, aby załadować odpowiednie środowisko dla każdego.

4

Mam je zainstalowane i współistnieją pokojowo. Cygwin jest zainstalowany w c: \ cygwin, a MinGW jest zainstalowany w c: \ msys \ mingw. Nie musiałem robić nic niezwykłego, aby je koegzystować, ponieważ ich środowiska są ustawione przez ich odpowiednie skróty startowe.

Musi być jakiś szczególny krok w twojej instalacji, który spowodował ich sprzężenie w jakiś sposób. Jeśli opisujesz sekwencję instalacji i lokalizacje, być może ktoś może zaoferować dodatkową poradę.

4

Sposób, w jaki je oddzielam, polega wyłącznie na korzystaniu ze środowiska Cygwin. Rzeczy MinGW nie ma domyślnej ścieżki PATH i nie używam żadnych programów MSYS. Do codziennego użytku nie można powiedzieć, że mam zainstalowany MinGW.

W tych rzadkich przypadkach, kiedy trzeba przetestować coś z MinGW, uruchomić ten skrypt z Cygwin Bash wiersza, który ja nazywam mingw:

#!/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 

dostosować ścieżkę do smaku. Jedyną ważną rzeczą jest to, że umieszcza katalog bin MinGW przed katalogiem bin Cygwin. Prawdopodobnie nadal chcą katalogu bin Cygwin w ścieżce do VI LS, itp

Ostatni wiersz tego skryptu działa ten skrypt, ~/.mingwrc:

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

Nie można połączyć te dwa skrypty z powodu na sposób, w jaki działa Bash. Drugi skrypt zawiera rzeczy, które mogą się zdarzyć tylko po uruchomieniu "powłoki MinGW". Przypisanie PS1 przypomina, że ​​jesteś w powłoce MinGW, a alias zapewnia, że ​​wpisywanie "make" uruchamia własny program make (1) MinGW zamiast Cygwin, ponieważ moje pliki MakeGiles MinGW używają poleceń DOS, a nie poleceń Bourne'a, a to jest jedną z różnic w porcie MinGW w GNU make. Jeśli chcesz użyć kompilatora MinGW z wersją Cygwin, możesz zostawić ten alias jako linię.

Kiedy "wyjdziesz" poza podrzędną powłokę MinGW, przywracasz poprzedni PS1, PATH i aliasy.

3

Skorzystaj z globalnej ścieżki. Następnie należy utworzyć nowy plik *.cmd z następującym (trwa Cygwin jako przykład):

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

Można wpisać path w oknie poleceń sprawdzić.

Teraz możesz pracować z cygwin. Środowisko jest ważne tylko w zakresie cmd.exe.

+0

Najlepsza odpowiedź dla mnie. – iab

Powiązane problemy