GCC на Cygwin, сосуществующем с MinGW

Возможно иметь две версии GCC для сосуществования: собственная версия окон MinGW и cygwin версия Linux? Вещи становятся проблематичными, когда на Cygwin система пытается скомпилировать с версией MinGW GCC, и наоборот. Как я могу сохранить обе версии GCC?

5
задан aplm 15 June 2010 в 02:52
поделиться

3 ответа

Психическая отладка предполагает, что у вас есть один или оба на вашем глобальном пути. Уберите оба из вашего глобального пути (gcc должен выдать «неверную команду или имя файла» или аналогичный запуск непосредственно из cmd.exe) и настройте ярлыки, чтобы они загружали правильную среду для каждого.

3
ответ дан 18 December 2019 в 13:11
поделиться

У меня есть оба из них установлены и мирно сосуществуют. Cygwin установлен в c: \ cygwin, а MinGW установлен в c: \ msys \ mingw. Мне не пришлось делать ничего необычного, чтобы заставить их сосуществовать, поскольку их среды устанавливаются соответствующими ярлыками запуска.

В вашей установке должен быть какой-то конкретный шаг, который заставил их каким-то образом соединиться. Если вы опишете последовательность и места установки, возможно, кто-нибудь даст дополнительный совет.

4
ответ дан 18 December 2019 в 13:11
поделиться

Способ, которым я держу их отдельно, заключается в использовании по умолчанию исключительно среды Cygwin. MinGW нет в моем PATH по умолчанию, и я не использую никаких программ MSYS. При повседневном использовании вы не сможете сказать, что у меня вообще установлен MinGW.

В тех редких случаях, когда мне нужно протестировать что-то с MinGW, я запускаю этот сценарий из интерпретатора Cygwin Bash, который я называю 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

Настройте PATH по своему вкусу. Единственная важная вещь в этом сценарии - это то, что он ставит каталог bin MinGW впереди каталога bin Cygwin. Вероятно, вам все еще нужен каталог Cygwin bin в PATH для vi, ls и т.д.

Последняя строка этого сценария запускает этот сценарий, ~/.mingwrc:

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

Вы не можете объединить эти два сценария из-за того, как работает Bash. Второй сценарий содержит действия, которые могут произойти только после запуска "оболочки MinGW". Назначение PS1 напоминает вам, что вы находитесь в оболочке MinGW, а псевдоним гарантирует, что ввод "make" запустит собственную программу make(1) MinGW, а не Cygwin, поскольку мои Make-файлы MinGW используют команды DOS, а не команды оболочки Bourne, и это одно из отличий порта GNU make в MinGW. Если вы хотите использовать компилятор MinGW с Cygwin make, опустите эту строку псевдонима.

Когда вы "выходите" из под-оболочки MinGW, вы восстанавливаете прежние PS1, PATH и псевдонимы.

4
ответ дан 18 December 2019 в 13:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: