← Все вопросы

Как скомпилировать C++ через g++ и запустить программу в терминале?

Задан 19 месяцев назад1к просмотров2 ответа
4

Только начал, до этого писал онлайн в песочнице. Поставил на Linux компилятор, есть файл main.cpp:

#include <iostream>
int main() {
    std::cout << "Hello, codechick!\n";
    return 0;
}

Пробую g++ main.cpp, вроде что-то происходит, но как теперь это запустить? Откуда берётся a.out и как назвать программу нормально? И какие флаги стоит сразу включить новичку?

2 ответа

9
✓ Принятый ответ — помог автору

Всё правильно делаешь, осталось два шага.

Команда g++ main.cpp компилирует и по умолчанию создаёт исполняемый файл с именем a.out (историческое название, "assembler output"). Запускается он так:

g++ main.cpp
./a.out

./ означает «файл в текущей папке» — без него терминал не найдёт программу.

Чтобы задать своё имя файла, используй флаг -o:

g++ main.cpp -o hello
./hello

Номинальный набор флагов, который стоит включать сразу:

g++ -std=c++17 -Wall -Wextra -O2 main.cpp -o hello
./hello
  • -std=c++17 — современный стандарт (иначе компилятор может работать в старом режиме)
  • -Wall -Wextra — включить предупреждения, они ловят кучу ошибок новичков
  • -O2 — оптимизация (важно для олимпиад, ускоряет код)

Если несколько файлов — просто перечисли их: g++ a.cpp b.cpp -o prog.

3

Если хочется не вводить длинную команду каждый раз, заведи короткий скрипт или alias. Например, в ~/.bashrc:

alias gpp='g++ -std=c++17 -Wall -O2'

Тогда компиляция превращается в gpp main.cpp -o sol && ./sol. На олимпиадах это экономит время.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект