как установить gcc на машину с windows 7?

119

У меня есть MinGW на моем компьютере с Windows 7. Я хочу установить и использовать полный gcc для компилятора C. Я обнаружил, что для этой цели не существует единого предварительно скомпилированного готового установочного файла. Я проверил следующую страницу: http://gcc.gnu.org/install/ Это сложно, и я считаю, что это выше моего уровня понимания. Может ли кто-нибудь дать мне пошаговое руководство со ссылками?

KawaiKx
источник

Ответы:

97

РЕДАКТИРОВАТЬ Еще не так давно MinGW-w64 "поглотил" один из проектов построения инструментальной цепочки. Загрузки можно найти здесь . Установщик должен работать и позволять выбрать нужную версию.

Обратите внимание, что Qt SDK поставляется с той же цепочкой инструментов. Поэтому, если вы разрабатываете на Qt и используете SDK, просто используйте набор инструментов, с которым он поставляется.

Другая альтернатива, которая имеет обновленные наборы инструментов, исходит от ... harhar ... разработчика Microsoft, не кто иной, как STL (Стефан Т. Лававей, не то чтобы имя разработчика стандартной библиотеки MSVC ++!). Вы можете найти это здесь . Он включает Boost.

Другой вариант, который очень полезен, если вы заботитесь о предварительно созданных зависимостях, - это MSYS2 , который предоставляет оболочку Unix (вилка Cygwin, модифицированная для лучшей работы с именами путей Windows и т. Д.), Также предоставляет GCC. Обычно он немного отстает, но это компенсируется хорошей системой управления пакетами и стабильностью. Они также предоставляют функциональный Clang с libc ++, если вам это небезразлично.

Я оставляю ниже для справки, но настоятельно рекомендую не использовать MinGW.org из-за ограничений, описанных ниже. TDM-GCC (версия MinGW-w64) предоставляет несколько приемов, которые могут оказаться полезными в вашей конкретной ситуации, хотя я рекомендую всегда использовать ванильный GCC для максимальной совместимости.


GCC для Windows в настоящее время предоставляется двумя проектами. Оба они предоставляют собственную реализацию Windows SDK (заголовки и библиотеки), что необходимо, поскольку GCC не работает с файлами Visual Studio.

  1. Старый mingw.org, на который @Mat уже указывал. Они предоставляют только 32-битный компилятор. Здесь вы найдете нужные вам загрузки:

    • Binutils - это компоновщик, компилятор ресурсов и т. Д.
    • GCC является компилятором и разделен на основные и языковые пакеты.
    • GDB - это отладчик.
    • библиотека времени выполнения требуется только для mingw.org
    • Возможно, вам придется загрузить mingw32-make отдельно.
    • Для поддержки вы можете попробовать (не ждите дружеских ответов) mingw-users@lists.sourceforge.net

    Или скачайте mingw-get и используйте его.

  2. Более новый mingw-w64, который, как следует из названия, также предоставляет 64-битный вариант и, надеюсь, в будущем некоторую поддержку ARM. Я использую его и создавал цепочки инструментов с их CRT. Личные и авто сборок находятся под «пристреливать Win32 компилированные инструменты / 64» здесь . Они также предоставляют кросс-компиляторы Linux для Windows. Я предлагаю вам сначала попробовать личную сборку, они более полные. Попробуйте мой (rubenvb) для GCC 4.6–4.8 или используйте sezero для GCC 4.4 и 4.5. Мы оба предоставляем 32-битные и 64-битные собственные наборы инструментов. Эти пакеты включают все перечисленное выше. В настоящее время я рекомендую сборки «MinGW-Builds», поскольку они в настоящее время санкционированы как «официальные сборки» и поставляются с установщиком (см. Выше).

    Для получения поддержки отправьте электронное письмо по адресу mingw-w64-public@lists.sourceforge.net или разместите сообщение на форуме через sourceforge.net.

Файлы обоих проектов перечислены на sourceforge, и все, что вам нужно сделать, это либо запустить установщик (в случае mingw.org), либо загрузить подходящий заархивированный пакет и распаковать его (в случае mingw-w64).

Существует множество «неофициальных» конструкторов инструментальных цепочек, одним из самых популярных является TDM-GCC. Они могут использовать патчи, которые нарушают бинарную совместимость с официальными / непатченными наборами инструментов, поэтому будьте осторожны при их использовании. Лучше всего использовать официальные релизы.

rubenvb
источник
6
Ваш ответ выглядит исчерпывающим, но я не понимаю его всего. Многие термины в вашем ответе новы для меня .. Я намерен получить компилятор gcc c, компоновщик, файлы заголовков и файлы библиотеки. Я скачал вашу личную сборку для GCC 4.6. что мне делать дальше? пожалуйста, потерпите со мной :-)
KawaiKx
9
@Saurabh: нет проблем, я старался быть точным в словах. Теперь вы извлекаете пакет, например, в C:` so that C: \ mingw64 \ bin` (или C: \ mingw32 \ bin ) contains gcc.exe, . Then, open a cmd.exe command prompt, and execute установите PATH = C: \ mingw64 \ bin;% PATH% `. Тогда вы сможете вызвать mingw32 -make, gcc, gdb и т. д. из этой командной строки. Программы, использующие его (например, cmake, Qt Creator, Codeblocks), также нуждаются в нем в PATH. Если вам нужно изменить PATH для всей системы / пользователя, перейдите в Панель управления-> Система -> Дополнительно -> Переменные среды, и добавьте или измените туда PATH.
rubenvb
1
сделал это. он работает хорошо. Большое спасибо .. почему так много хлопот с установкой компилятора gcc на машину Windows? изначально он не предназначался для платформы x86?
KawaiKx
4
GCC / binutils для Windows занимается не более чем 4-5 разработчиками. Они делают отличную работу, но предоставляют сообществу возможность предоставить свои инструменты. Не поймите неправильно: TDM существует уже давно и предоставляет удобный установщик, но он не отправляет патчи вверх по течению из-за проблем с авторскими правами. Codeblocks предоставляет инструментальную цепочку MinGW вместе с IDE, как и Qt. Но ни один из них не поставляет 64-битные :). Для сборки самого GCC требуется среда Unix, например Cygwin / MSYS, или даже лучше: Linux. Процесс сборки непростой. Но установить это не так уж и сложно, если вы знаете, что делать.
rubenvb
1
@rubenvb, я заметил, что у Mingw64 теперь есть установщик, который позволяет вам выбирать. Это хуже, чем личная сборка?
batbrat
26

Скачайте mingw-get и просто введите:

mingw-get install gcc.

См. Страницу " Начало работы" .

Мат
источник
2
эта установка не устанавливает стандартную библиотеку C gcc .. вместо этого она использует msvcr ***. a. почему так? это потому, что стандартная библиотека C gcc содержит объектные коды, предназначенные для чипов, отличных от x86?
KawaiKx
3
потому что порт MinGW GCC в Windows использует стандартную библиотеку C. Если вы хотите использовать другую библиотеку C, посмотрите cygwin (использует newlib). Не уверен, что вам повезет с GLIBC в Windows (я тоже не вижу в этом смысла).
Мат
1
что вы имеете в виду под "MinGW-портом GCC на windows"? извините, это может показаться глупым, но я новичок в этих условиях ..
KawaiKx
2
Это означает, что версия GCC, созданная MinGW, предназначена для работы в средах Windows.
Мат
11
  1. Распакуйте пакет в C: \ отсюда и установите его.

  2. Скопируйте путь, C:\MinGW\binсодержащий gcc.exe.

  3. перейдите Control Panel->System->Advanced>Environment variablesи добавьте или измените PATH. (просто соедините с ';')

  4. Затем open a cmd.exe command prompt(Windows + R и введите cmd, если он уже открыт, закройте и откройте новый, чтобы изменить путь)

  5. измените папку на свой путь к файлу, cd D:\c code Path

  6. тип gcc main.c -o helloworld.o. Он скомпилирует код. дляC++ use g++

7 введите ./helloworldдля запуска программы.

Если zlib1.dll отсутствует, загрузите отсюда

Винодж Джон Хосан
источник
6

Следуя ответу Мэта (используйте Cygwin), вот несколько подробных инструкций по установке gcc в Windows . Вам нужны пакеты gcc, gdb и make. Установщик Cygwin позволяет вам устанавливать дополнительные пакеты, если они вам нужны.

michaelok
источник
Я установил Cygwin и необходимые пакеты. Я также проверил из командной строки Windows, что gcc, gdb и make доступны. Но все же установка рельсового драгоценного камня не удается с той же ошибкой! Кто-нибудь успешно пробовал Cygwin и Rails в Windows?
Vishal Biyani
Кроме того, когда я запускаю gccкомандную строку, мне отказывают в доступе, не знаю почему,
Вишал Бияни
3
В настоящее время я бы, вероятно, выбрал что-то вроде Oracle VirtualBox ( virtualbox.org ) или VMWare вместо Cygwin. Тогда вы сможете запускать обе ОС на одном компьютере. Что касается Rails, вы пробовали установить Rails Installer? railsinstaller.org
michaelok
Спасибо за подсказку @michaelok, обязательно попробую
Вишал Бияни
Я тоже не смог его найти, поэтому обновил его до главной страницы Cygwin. Что сложно в установщике, так это то, что вы выбираете правильные пакеты. Из инструкций, в которых говорится о gcc: «По умолчанию setup.exe устанавливает только пакеты из категории Base и их зависимости, что приводит к минимальной установке Cygwin. Однако он не будет включать многие часто используемые инструменты, такие как как gcc (который вы найдете в категории Devel) "
Devel
1

Я использую msysgit для установки gcc в Windows, у него есть хороший установщик, который устанавливает почти все, что вам может понадобиться. Большинству разработчиков потребуется нечто большее, чем просто компилятор, например оболочка, инструменты оболочки, make, git, svn и т. Д. Msysgit поставляется со всем этим. https://msysgit.github.io/

изменить: теперь я использую msys2. Msys2 использует pacmanArch Linux для установки пакетов и включает три среды: для создания приложений msys2, 32-разрядных собственных приложений и 64-разрядных собственных приложений. (Вы, вероятно, захотите создавать 32-битные собственные приложения.)

https://msys2.github.io/

Вы также можете перейти на полную версию и установить code :: blocks или какой-либо другой графический редактор, который поставляется с компилятором. Я предпочитаю использовать vim и make.

Сэм Уоткинс
источник
Msysgit все еще работает для вас? Этот URL-адрес перенаправляет на Git для Windows, где я не вижу упоминания о gcc. Мне не повезло с Git для Windows, но это может быть другая история. Также есть сообщение «msysGit был заменен Git для Windows 2.x»
Боб Стейн,
Теперь я использую msys2, а не msysgit. msys2.github.io Я обновил свой ответ.
Сэм Уоткинс,