|
3149 / 369 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
|
|||||||||||||||||||||||||||||||
GCC - компиляция C/C++ программ07.11.2009, 11:41. Показов 202940. Ответов 2
Метки нет (Все метки)
Обсуждение приветствуется , буду рад пожеланиям по улучшению данной статьи.
![]() Статья в процессе написания, пожелания пишите сюда ОГЛАВЛЕНИЕ 1. Предисловие 2. Руководство 2.1. Установка MinGW на Windows.1. Предисловие В данной статье будет написано как пользоваться компилятором GCC и вспомогательными программами. Эта статья будет полезна для тех, кто только начал изучать С/С++, и не знает на чем и как компилировать свои первые программы, а также всем желающим научиться пользоваться этим компилятором. 2. Руководство 2.1. Установка MinGW на Windows. Зайдите на страничку http://sourceforge.net/projects/mingw/files/ найдите там папку Automated MinGW Installer, найдите в ней инсталлятор посвежее, скачайте его. Затем запустите его. Щелкните Next => Download and install => Next => I Agree => Current => Next => Выберите MinGW base tools, g++, MinGW Make => Next => Выберите папку куда хотите установить MinGW => Next => Install. Ждите пока скачается и установится MinGW. 2.2. Прописывание пути к MinGW в Windows. Прописывание путей необходимо для того, чтобы для запуска компилятора не приходилось каждый раз писать полный путь к нему. Зайдите в Панель инструментов => Система => Дополнительно => Переменные среды. К переменной Path, через знак "точка с запятой" добавьте путь к папке /MinGW/bin. 2.3. Компиляция в Windows`е 1) Откройте консоль Пуск=> Выполнить=> cmd. 2) Перейдите в папку с исходником командой cd путь_к_папке_с_исходником например:
g++ исходный_файл Например:
4) Если исходники вашей программы состоят из нескольких файлов, то можно написать их имена через пробел: g++ первый_исходный_файл второй_исходный_файл Например:
6) Если вы не хотите каждый раз возится с консолью, можете создать *.bat файл и записать в него все необходимые команды. Делается это так: создаете текстовой документ, открываете его с блокнотом и записываете в него необходимые команды, примерно так:
2.4. Литература по GCC Официальная документация Артур Гриффитс "GCC. Полное руководство" 2.5. Уменьшение размера исполняемого файла. Удаление отладочной информации позволяет уменьшить размер испольняемого файла. Команда выглядит так: strip имя_исполняемого_файла Например:
58
|
|||||||||||||||||||||||||||||||
| 07.11.2009, 11:41 | |
|
Ответы с готовыми решениями:
2
Компиляция Objective-C в GCC Компиляция GCC в Windows GCC:Компиляция в формат elf под Windows |
|
|
|
| 19.01.2017, 22:32 | |
|
Некоторые поправки и добавления по пунктам:
2.1 В данный момент, самая актуальная версия MinGW находится в составе MSYS2. Краткая инструкция по установке и настройке находится на главной (той же) странице официального сайта. 2.5 Параметр -s (или --strip-all) позволяет максимально уменьшить размер исполняемого файла, удалив из него всю информацию о символах и релокации.
1
|
|
|
6102 / 2795 / 1037
Регистрация: 01.06.2021
Сообщений: 10,217
|
|
| 01.01.2024, 13:40 | |
|
В данной статье хочу привести некоторые самые важные (на мой взгляд) опции для компиляции с помощью GCC
Разумеется, продвинутые программисты могут ознакомиться со всеми опциями в документации GCC. В этой статье лишь приведены самые основные опции для новичков. Базовые опции -c (компилировать или ассемблировать исходные файлы, но не линковать)-S (остановиться после собственно компиляции; не ассемблировать)-E (остановиться после стадии препроцессирования; не запускать собственно компилятор)-o (поместить вывод в файл 'файл')-v (печатать команды, которые исполняет GCC, а также его версию)Предупреждения: -w (отключает все предупреждения)-Wall (включает все предупреждения)-Wextra (включает дополнительные предупреждения, которые не включает -Wall)-Werror (предупреждения становятся ошибками)-Wpedantic или -pedantic (предупреждения, требуемые стандартами ISO C и ISO C++ с некоторыми исключениями. Выдает предупреждения на расширения GNU)-pedantic-errors (предупреждения -pedantic становятся ошибками)Оптимизация ( -O):-O0 (без оптимизации)Различные уровни оптимизации: чем выше цифра, тем агрессивнее оптимизация -O1-O2 (рекомендованный вариант для релизной сборки)-O3Другие оптимизации -Og (оптимизация для отладочной сборки; для отладки лучше использовать данную опцию, а не -O0)-Os (оптимизация для размера: фактически, -O2 без некоторых оптимизаций, которые могут увеличить размер)-Oz (агрессивная оптимизация скорее для размера, а не для скорости)Если использовать несколько опций, то только последняя будет учитываться при компиляции. Версии ISO C++ (лучше указать вместе с - pedantic или -pedantic-errors):-std=c++98-std=c++11-std=c++14-std=c++17-std=c++20-std=c++23Версии ISO C -std=c90-std=c99-std=c11-std=c17Опции линкера -s (сокращает размер файла, удаляя таблицу символов и некоторую другую информацию из исполняемого файла)-static (предотвращает динамическое связывание)-static-libgcc (предотвращает динамическое связывание с libgcc)-static-libstdc++ (предотвращает динамическое связывание с libstdc++)Статическое связывание увеличивает размер исполняемого файла, но зато этот файл становится независимым и не нужно таскать с ним dll файлы, как это бывает при динамическом связывании. -l[название библиотеки без скобок]
4
|
|
| 01.01.2024, 13:40 | |
|
Помогаю со студенческими работами здесь
3
gcc компиляция Компиляция gcc Компиляция (gcc) Компиляция бинарника на gcc Компиляция проекта в gcc Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|