πŸ“œ gcc ΠΈ g++: Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°?

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ GCC ΠΈ G++?

by itisgood

Π—Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈΡΡŒ Π»ΠΈ Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ GCC ΠΈ G++?

Если ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° этот вопрос ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ “GCC ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Π‘ΠΈ, Π° G++ – для Π‘ΠΈ++”.

Но ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡ… ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ввСдСния.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ GCC ΠΈ G++?

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ GCC ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Π‘ΠΈ, Π° G++ – для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Π‘ΠΈ++.

Π₯отя для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π‘ΠΈ++ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GCC (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΅Π³ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ gcc -xc++ -lstdc++ -shared-libgcc), g++ обСспСчиваСт Π±ΠΎΠ»Π΅Π΅ простой синтаксис.

Π’ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ, GCC (GNU Compiler Collection) – это супСрнабор Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… компиляторов.

Π’ Π½Π΅Π³ΠΎ входят g++ для языка Π‘ΠΈ++ ΠΈ GNAT для языка программирования Ada.

Π₯отя gcc способСн ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘ΠΈ++ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ², Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ g++.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ g++ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ссылаСтся Π½Π° стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘ΠΈ++.

GCC Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ это Π΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΠΎ Π½Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

πŸ’„ Установка GCC ΠΈ срСдста Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° RHEL 8 / CentOS 8

Установка

Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… инструмСнтов для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языках C ΠΈ C++ Π² Linux, ΠΎΠ½ доступСн Π² рСпозиториях всСх дистрибутивов Linux.

НиТС описано, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дистрибутивах Linux:

Для Ubuntu/Debian:

sudo apt install gcc g++

Для Fedora/RHEL:

sudo dnf instal gcc g++

Для Arch Linux:

sudo pacman -S gcc

(Arch Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ G++ Π² состав самого ΠΏΠ°ΠΊΠ΅Ρ‚Π° GCC)

ИспользованиС

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ расскаТСм ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языках Π‘ΠΈ ΠΈ Π‘ΠΈ++ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GCC ΠΈ G++.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это руководство доступным, я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° языкС Π‘ΠΈ:

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

А Π²ΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π° языкС C++:

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

Они ΠΎΠ±Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ вывСсти ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ строку Hello, World!

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ свою ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Β«Hello WorldΒ» Π½Π° 25 Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ

Для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ gcc ΠΈΠ»ΠΈ g++. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ gcc, Ρ‚ΠΎ Π²ΠΎΡ‚ синтаксис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ:

gcc -o my_program my_program.c

Π—Π΄Π΅ΡΡŒ,

  • -o ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
  • my_program – это мСсто, Π³Π΄Π΅ указываСтся имя Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
  • my_program.c – это мСсто, ΠΊΡƒΠ΄Π° добавляСтся имя Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

НапримСр, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ я скомпилировал свой Ρ„Π°ΠΉΠ» hello.c с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компилятора GCC:

gcc -o hello hello.c

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ любой скомпилированный Ρ„Π°ΠΉΠ», Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ./ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ скомпилированного Ρ„Π°ΠΉΠ»Π°:

./hello

Аналогично, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ G++ для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

g++ -o cpp_program cpp_program.c

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΈ запуск ΠΊΠΎΠ΄Π° Π½Π° языкС C++

Для компиляции ΠΊΠΎΠ΄Π° Π½Π° языкС C++ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ компилятор G++ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

g++ -o my_code my_code.cpp

ПослС этого ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ исполняСмого Ρ„Π°ΠΉΠ»Π°:

./my_code

НапримСр, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ я скомпилировал Ρ„Π°ΠΉΠ» hello.cpp с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компилятора G++:

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

см. Ρ‚Π°ΠΊΠΆΠ΅:

You may also like

Leave a Comment