2010-09-23 1 views
36

Поскольку «gcc -mno-cygwin» больше не работает, я искал способ получить GCC с поддержкой MinGW в среде Cygwin. (Запуск среды MSYS не вариант на данный момент.)Cygwin: Как на самом деле использовать gcc-mingw

Инсталлятор Cygwin предлагает пакет «НКУ-MinGW», который устанавливает, среди прочего:

lib/gcc/i686-pc-mingw32/3.4.4/cc1.exe 
lib/gcc/i686-pc-mingw32/3.4.4/collect2.exe 
lib/gcc/i686-pc-mingw32/3.4.4/crtbegin.o 
lib/gcc/i686-pc-mingw32/3.4.4/crtend.o 

Что отсутствует является «НКУ " внешний интерфейс. Итак, как я на самом деле вызывают этот компилятор? Я надеюсь, что вам не нужно проходить через «cc1» вручную, не так ли?

я гугл, но не смог найти что-либо отношение по этому вопросу ...

ответ

32

Как вы уже нашли, вы может использовать gcc-3 с -mno-cygwin. Другая возможность - установить 32-битные и/или 64-битные инструментальные цепочки из проекта MinGW-w64, которые были недавно упакованы для Cygwin и, следовательно, доступны через setup.exe. Не отвлекайтесь на довольно запутывающие исполняемые имена: i686-w64-mingw32-gcc - это 32-разрядный компилятор, а x86_64-w64-mingw32-gcc - это 64-разрядный.

+1

Это действительно работает. Любая идея, почему они хранят явно нефункциональный пакет «gcc-mingw» и скрывают рабочий материал как «i686-w64-mingw32-gcc»? – DevSolar

+0

Я думаю, что пакеты gcc-mingw являются частью функции gcc-3 -mno-cygwin. На самом деле они не содержат ничего, кроме сценариев postinstall, которые создают ссылки, которые, как мне кажется, необходимы для этого. Эти смешные имена следуют обычному шаблону триплета цели для кросс-компиляторов: cpu-vendor-os, с вендором == w64 (для MinGW-w64) и os == mingw32 (по историческим причинам). – ak2

+2

Обратите внимание, что по крайней мере с июня '12 строка, запускающая компилятор MinGW из Cygwin после установки инструментальной цепочки, просто 'mingw-gcc'. Это решает вопрос, поднятый [комментариями] (http://stackoverflow.com/questions/3776098/cygwin-how-to-actually-use-gcc-mingw#comment3998032_3776118) в [post ниже] (http: // stackoverflow.com/a/3776118/564181). –

1

Cygwin homepage говорит, что «индивидуальные пакеты, такие как Баш, GCC, меньше и т.д. выпускаются независимо от DLL.».

Here вы можете найти, как установить gcc под cygwin, поэтому вы также должны выбрать gcc-пакет во время установки не только gcc-mingw.

+0

Я установил (среди других) gcc, gcc4 и gcc-mingw. Мой вопрос в том, как на самом деле * достичь * MinGW-таргетинга GCC. «gcc», очевидно, этого не делает, «gcc -mno-cygwin» нет, и нет такой вещи, как «gcc-mingw». – DevSolar

+0

Я вижу, что это не так просто, как я впервые подумал. Здесь (http://cygwin.com/ml/cygwin/2009-10/msg00061.html) Я нашел возможное решение. – rics

+0

Я также нашел это самостоятельное решение: http://sourceforge.net/apps/trac/mingw-w64/wiki/Cross%20Win32%20and%20Win64%20compiler – rics