Как скомпилировать файл в mingw

Обновлено: 07.07.2024

Для этого урока у вас должна быть установлена программа g++. g++ - производное имя от gcc. gcc - компилятор языка C. Имя gcc образовано от GNU C Compiler. GNU - операционная система, а также это набор свободного ПО, включая gcc и g++ (компиляторы C/C++).

Если вы используете Linux, то g++ уже установлен.

g++ для Windows

Есть пара вариантов, как установить g++ на Windows. Cygwin и MinGW32. MinGW имеет версию для архитектуры x86-64. И именно её мы и будем использовать. Скачайте MinGW-W64, установите, а затем найдите mingw в меню Пуск (MinGW-W64 -> Run Terminal), или зайдите в папку с программой в проводнике (нужно запускать файл mingw-w64.bat). Вы увидите командную строку Windows.

Работа с командной строкой Windows

Если вы никогда не использовали командную строку, то вот несколько полезных команд:

Имя диска с двоеточием - перейти на определённый диск. Например, я храню код на диске D, поэтому моей первой командой будет:

cd - изменить директорию (change directory). Эта команда переместит вас в нужную директорию. Я храню код для данных уроков в папке: d:\prog\cpp. Поэтому, после того как я выбрал диск D, я обычно ввожу следующую команду:

cd .. (две точки) переместит вас в папку выше.

Исходный код

Создайте файл hello_world.cpp в папке, где вы планируете хранить свой код. Откройте его в простом текстовом редакторе: Notepad/Gedit/Notepad++/Sublime. И вставьте следующий текст:

Эта программа напечатает строку Hello World в консоли. Мы обсудим, что означает данный код, в следующем уроке.

Весь код хранится в простых текстовых файлах - это исходный код. Чтобы его выполнить, нужно сначала его скомпилировать. Откройте папку где вы сохранили исходный код в командной строке.

Компиляция C++ кода с помощью компилятора g++

После выполнения данной команды, в текущей директории будут создан файл: a.out или a.exe. Чтобы запустить программу, введите имя файла в консоли и нажмите Ввод (Enter). В консоли вы увидите текст Hello World. После этого программа сразу завершится.

a.out - имя по умолчанию для скомпилированных файлов. Мы можем изменить его:

g++ -o <output_filename> <filename> g++ -o hello_world.exe hello_world.cpp

Выполнив последнюю команду, мы получим файл hello_world.exe. После этого в Windows скомпилированную программу можно выполнить следующей командой:

Компиляция (compilation) и связывание (linking)

Во время компиляции происходит два шага. Первый - компиляция файлов с исходным кодом. Результат этого шага: объектный код. Объектный код помещается в файлы с расширением .o. Следующий шаг - связывание (linking). Специальная программа - компоновщик (linker), берёт объектные файлы и "связывает" их вместе. Компоновщик необходим, когда есть больше одного файла с исходным кодом. Пока наши программы будут состоять из одного файла. Но в будущем нам понадобится компоновщик.

Заключение

Мы рассмотрели как компилируется C++ код с помощью компилятора g++. Теперь мы готовы к изучению C++. А начнём мы с разбора программы Hello World.

Используйте CMake + MinGW для создания среды компиляции C / C ++ под Windows

1.1 MinGW


MinGW - это свободно используемая и свободно распространяемая коллекция специфичных для Windows заголовочных файлов и библиотек импорта с использованием набора инструментов GNU, позволяющая создавать локальные программы Windows без необходимости использования сторонних библиотек времени выполнения C. Проще говоря, MinGW - это среда компиляции, которая содержит трехсторонние библиотеки и заголовочные файлы, необходимые для компиляции кода C ++ . Он используется для компиляции и компоновки исходного кода C ++, аналогично Turbo C в ранних версиях Windows. Текущая среда VisualStudio объединяет функции компиляции и компоновки, поэтому фактический процесс компиляции и компоновки невидим для разработчиков. Разница в том, что VS использует компилятор и компоновщик Microsoft. После установки и настройки MinGW мы можем скомпилировать и создать ссылку для генерации исполняемых файлов с помощью команд g ++ в командной строке.

1.2 CMake

CMake

CMake - это кроссплатформенная автоматизированная система построения, использующая файл CMakeLists.txt для описания процесса сборки. CMake может работать в средах Windows и Linux.В зависимости от настроенного компилятора, он может генерировать файлы Makefile, соответствующие операционной системе, в которой он находится. В Windows он может генерировать файловые системы проекта VS.

2.1 MinGW

2.1.1 Установка

С официального сайта MinGW (MinGW Installer) Получите установочный файл MinGW и дважды щелкните, чтобы начать установку:

  • Каталог установки можно указать самостоятельно, но он должен быть записан для последующей настройки переменных среды

  • Инструмент установки начинает загружать необходимые установочные файлы

  • Рекомендуется выбирать все пакеты в «Базовой настройке», остальные выбираются в соответствии с их потребностями.

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

2.1.2 Конфигурация


При настройке переменных среды Windows добавьте каталог bin MinGW в Path


нота:
- Запустите командную строку Windows и выполните команду g ++ –version. Если версия g ++ найдена, конфигурация правильная.

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

2.2 CMake

2.2.1 Установка


С официального сайта CMake (CMake Installer) Возьмите установочный файл CMake и дважды щелкните, чтобы начать установку:

2.2.2 Конфигурация


CMake уже настроил переменные среды в процессе установки, поэтому ручная настройка не требуется. После завершения установки вы можете выполнить команду cmake –version в командной строке. Если конфигурация установки верна, будет отображена следующая информация:

3.1 Структура каталогов исходного кода:


3.2 Создать файл CMakeList:


3.3 Запустите GUI-версию инструмента CMake для генерации Makefile:

3.4 Выполните команду Make, чтобы сгенерировать исполняемый файл:




4.1 Нажмите Config на интерфейсе CMake, он предложит, что файл проекта недействителен:



В настоящее время может случиться так, что CMakeList.txt не существует или неправильное наименование. Создайте и измените файл вручную. Имя файла чувствительно к регистру. После создания файла перезапустите CMake.

4.2 В CMakeList.txt есть синтаксическая ошибка:



Рисунок находится в 10-й строке файла CMakeList.txt. Путь к файлу использует «\», что недопустимо и должно быть изменено на «//»

4.3 Во время процесса make сообщается об ошибке «файл заголовка не найден»:



Проблема может быть в ссылке на файл заголовка, который не существует в MinGW. Эта проблема может быть более распространенной при использовании кода, разработанного инструментом VS в Window. Если вы создаете проект, который необходимо запустить в Linux, постарайтесь не использовать системные файлы Windows или собственные заголовочные файлы VS или отличать их, компилируя макросы в процессе кодирования.

В данной статье будет написано как пользоваться компилятором GCC и вспомогательными программами. Эта статья будет полезна для тех, кто только начал изучать С/С++, и не знает на чем и как компилировать свои первые программы, а также всем желающим научиться пользоваться этим компилятором.

2. Руководство

2.1. Установка MinGW на Windows.


2.2. Прописывание пути к MinGW в Windows.

Прописывание путей необходимо для того, чтобы для запуска компилятора не приходилось каждый раз писать полный путь к нему. Зайдите в Панель инструментов => Система => Дополнительно => Переменные среды. К переменной Path, через знак "точка с запятой" добавьте путь к папке /MinGW/bin.

2.3. Компиляция в Windows`е

1) Откройте консоль Пуск=> Выполнить=> cmd.
2) Перейдите в папку с исходником командой cd путь_к_папке_с_исходником например:

3) Если исходники вашей программы состоят из одного файла, то команда компиляции будет выглядеть так:
g++ исходный_файл
Например:
В результате выполнения этой команды в папке с исходником окажется откомпилированная программа.
4) Если исходники вашей программы состоят из нескольких файлов, то можно написать их имена через пробел:
g++ первый_исходный_файл второй_исходный_файл
Например:
5) Если проект состоит из большого числа исходных файлов, то скомпилировать их всех можно командой:
В данной папке все исходные файлы будут скомпилированы в одну программу.
6) Если вы не хотите каждый раз возится с консолью, можете создать *.bat файл и записать в него все необходимые команды. Делается это так: создаете текстовой документ, открываете его с блокнотом и записываете в него необходимые команды, примерно так:

2.5. Уменьшение размера исполняемого файла.
Удаление отладочной информации позволяет уменьшить размер испольняемого файла. Команда выглядит так:
strip имя_исполняемого_файла
Например:

Компиляция Objective-C в GCC
Пытаюсь выполнить компияцию кода Objective-C с помощью GCC на Windows. Для этого: 1. Установил.

Компиляция GCC в Windows
У меня в виндусе GCC для виндуса (портированный) Я хочю на нем (5,1) скомпилировать сам.

GCC:Компиляция в формат elf под Windows
Можно ли при помощи gcc создать в Windows исполняемый файл в формате elf? Если можно, то как?

gcc компиляция
Проблема возникла при компиляции проекта code::block. При build and run все работает, в папке bin.

Некоторые поправки и добавления по пунктам:

2.1 В данный момент, самая актуальная версия MinGW находится в составе MSYS2. Краткая инструкция по установке и настройке находится на главной (той же) странице официального сайта.

2.5 Параметр -s (или --strip-all ) позволяет максимально уменьшить размер исполняемого файла, удалив из него всю информацию о символах и релокации.

Компиляция gcc
Подскажите как в VS скомпилировать программу с помощью компилятора gcc

Компиляция (gcc)
Добрый вечер! После компиляции текстовый файл становится вдруг двоичным, как следствие его.

Компиляция бинарника на gcc
Задача: нужно скомпилировать сырой бинарник на gcc. Он будет грузиться по адресу 0x10000 и туда же.

Компиляция проекта в gcc
Здравствуйте, форумчане! Прошу помочь разобраться! Есть программа, представленная в 3х файлах. В.

Какую команду нужно ввести в командной строке в Windows 7, чтобы скомпилировать базовую программу на C?

Как будто мне буквально интересно, что вы вводите в командной строке, чтобы скомпилировать файл .c.

Я также пробовал:

У меня есть переменная среды пути, в которой установлен MinGW:

Я действительно не могу найти никакой информации о том, где я ошибаюсь, и не могу найти ничего в официальной документации MinGW, так как кажется, что это что-то настолько простое, своего рода неловкий вопрос, что, похоже, люди знают, что сделать?

Это означает, что не удалось найти gcc.exe .

У меня есть переменная среды пути, в которой установлен MinGW

Может, вы неправильно указали путь?

Показывает путь к gcc.exe? В остальном компиляция аналогична Unix:

make как обычно . Просто убедитесь, что он есть на вашем пути, и исправьте Makefile

В Windows 10 аналогичные шаги можно выполнить и в других версиях Windows.

Щелкните правой кнопкой мыши «Мой компьютер», выберите «Свойства», перейдите в раздел «Дополнительные параметры системы» -> «Дополнительно» -> выберите «Переменные среды ..».

Найдите «Путь», выберите его и выберите вариант редактирования -> Нажмите «Создать» и добавьте «C: \ MinGW \ bin» (или местоположение gcc.exe, если вы установили его в другом месте) -> Сохранить и перезапустить командную строку . Gcc должен работать.

Я довольно поздно отвечаю на этот вопрос (5 ​​лет, если быть точным), но надеюсь, что это кому-то поможет.

Я подозреваю, что эта ошибка связана с переменными окружения, а не с GCC. Когда вы устанавливаете новую переменную среды, вам нужно открыть новую командную строку! Это проблема в 90% случаев (когда я впервые загрузил GCC, я застрял с этим на 3 часа!) Если это не так, вы, вероятно, неправильно установили переменные среды или находитесь в папке с пробелы в названии.

Однажды у меня была такая проблема с установкой MinGW для работы в Windows, даже после того, как я добавил правильный системный PATH в свои переменные среды.

После нескольких дней страданий я, наконец, наткнулся на ветку, в которой рекомендовалось удалить исходный компилятор MinGW, удалить папку C:\MinGW и установить компилятор TDM-GCC MinGW, который можно найти здесь.

У вас есть возможность выбрать 64/32-разрядный установщик на странице загрузки, и он также создает для вас переменные пути к среде.

Если вы вставили текст в переменную пути и добавили пробел перед точкой с запятой, вы должны удалить его и добавить обратную косую черту в конце каталога (; C: \ Program Files (x86) \ CodeBlocks \ MinGW \ bin

Вместо настройки %PATH% вы можете войти в свою оболочку msys. При стандартной установке msys и mingw gcc находится в пути, поэтому вы можете запустить gcc или which gcc .

У меня в Windows 7 есть командный файл sh.bat в% PATH%:

Когда я хочу использовать gcc, я ввожу cmd, затем sh , затем gcc . Мне это очень удобно.

При работе с программным обеспечением, созданным под Linux, избегайте использования разнесенных каталогов, таких как Program Files . Установите их скорее на Program_Files . То же самое и с инструментами, которые вы, возможно, захотите запустить из среды msys.

Вы можете навсегда включить каталог файла MinGW, щелкнув «Мой компьютер», «Свойства», «Дополнительные системные настройки», «Переменные среды», а затем отредактировать и вставить свой каталог.

У меня была такая же проблема с файлами .c, которые содержали функции (не main() моей программы). Например, моими заголовочными файлами были «fact.h» и «fact.c», а моей основной программой была «main.c», поэтому мои команды были такими:

Теперь у меня был объектный файл fact.c (fact.o). после этого:

Тогда моя программа (prog.exe) была готова к использованию и исправно работала. Я думаю, что -c после gcc был важен, потому что он создает объектные файлы, которые можно прикрепить для создания нужной нам программы. Без использования -c gcc связывается с поиском main в вашей программе, а когда не находит его, выдает эту ошибку.

Когда я пытаюсь скомпилировать, я получаю эту ошибку!

gcc: error: CreateProcess: нет такого файла или каталога

Я наконец выяснил, что некоторые из загруженных архивов были повреждены при распаковке их в C:\MinGW (но я сначала проигнорировал это). Как только я удалил поврежденные файлы и повторно загрузил все архивы из SourceForge, успешно распаковал их в C: \ MinGW, ошибка исчезла, и компилятор работал нормально и вывел желаемый hello.exe .

Результат был следующим (мигающее подчеркивание):

Просто установите переменную среды на ТОЧНЫЙ путь к gcc.exe следующим образом:

Первое:

Добавьте каталог папки bin вашего minGW (например: C \ mingw64 \ bin ) в Системные переменные => Путь. наглядный пример

.c: gcc filename.c -o desire

.cpp: g ++ filename.cpp -o desire

Выполнить:

Желание / или ./desire

У меня была эта проблема, и я не мог понять, почему это продолжалось. Причина проста: после того, как вы настроили пути к среде, вы должны закрыть окно CMD и открыть его снова, чтобы оно было известно о новых путях к среде.

Читайте также: