Компиляция с g ++

Опубликовано: 30 Декабря, 2021

Команда g ++ - это команда вызова компилятора GNU C ++, которая используется для предварительной обработки, компиляции, сборки и связывания исходного кода для создания исполняемого файла. Различные «опции» команды g ++ позволяют остановить этот процесс на промежуточном этапе.

  • Проверьте информацию о версии компилятора g ++:
 g ++ --version

  • Скомпилируйте файл CPP для создания исполняемого целевого файла: команда g ++ file_name используется для компиляции и создания исполняемого файла a.out (целевое имя по умолчанию).
    Пример: дана простая программа для вывода «Hello Geek» на стандартный вывод с именем файла hello.cpp.

CPP

// hello.cpp file
#include <iostream>
int main()
{
std::cout << "Hello Geek " ;
return 0;
}

g++ hello.cpp

Это компилирует и связывает hello.cpp для создания целевого исполняемого файла по умолчанию a.out в текущем рабочем каталоге. Чтобы запустить эту программу, введите ./a.out, где ./ представляет текущий рабочий каталог, а a.out - исполняемый целевой файл.

 ./a.out

  • g ++ -S имя_файла используется только для компиляции имени_файла, но не для сборки или связывания. Он сгенерирует исходный файл сборки file_name.s.
    Пример:
 g ++ -S hello.cpp

  • g ++ -c имя_файла используется только для компиляции и сборки имени_файла, но не для связывания объектного кода для создания исполняемого файла. Он сгенерирует файл объектного кода file_name.o в текущем рабочем каталоге.
    Пример:
 g ++ -c hello.cpp

  • g ++ -o target_name имя_файла: компилирует и связывает имя_файла и генерирует исполняемый целевой файл с target_name (или a.out по умолчанию).
    Пример:
 g ++ -o main.exe hello.cpp

  • Компилировать и связывать несколько файлов: когда используется флаг -c , он вызывает этап компиляции, который переводит исходный код в объектный код. Когда используется флаг -o, он связывает объектный код для создания исполняемого файла из file_name.o в a.out ( default) , кратные файлы могут передаваться вместе в качестве аргументов.
    Пример:

CPP

// hello.cpp file
#include "helloWorld.h"
#include <iostream>
int main()
{
std::cout << "Hello Geek " ;
helloWorld();
return 0;
}

CPP

// helloWorld.cpp file
#include <iostream>
void helloWorld()
{
std::cout << "Hello World " ;
}

CPP

// helloWorld.h file
void helloWorld();

g ++ -c helloWorld.cpp hello.cpp
  • Он компилирует и создает объектный код для файлов helloWorld.cpp и hello.cpp для helloWorld.o и hello.o соответственно.
 g ++ -o main.exe helloWorld.o hello.o
  • Он связывает объектные коды helloWorld.o и hello.o для создания исполняемого файла main.exe.
 ./main.exe
  • Запускает исполняемый файл main.exe

  • g ++ -Wall имя_файла: печатает все предупреждающие сообщения, которые генерируются во время компиляции имя_файла .
    Пример:

CPP

// hello.cpp file
#include <iostream>
int main()
{
int i;
std::cout << "Hello Geek " ;
return 0;
}

g ++ -Wall hello.cpp
  • Расширение файлов для файлов c ++ может быть .cpp или .c ++, .cpp широко используется, но .cpp и .c ++ точно такие же, и все вышеперечисленные функции одинаковы и для .c ++.


Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .