У Линуку, ГЦЦ означава Збирка ГНУ компајлера . То је систем компајлера за различите програмске језике. Углавном се користи за компајлирање Ц и Ц++ програма. Узима име изворног програма као неопходан аргумент; остали аргументи су опциони, као што су отклањање грешака, упозорење, објектна датотека и повезивање библиотека.
ГЦЦ је основна компонента ГНУ ланца алата. Различити пројекти отвореног кода се компајлирају помоћу ГЦЦ-а, као што су Линук кернел и ГНУ алати.
Дистрибуира се под ГПЛ (Генерал Публиц Лиценсе). Прва верзија, ГЦЦ 1.0 , објављен је 1987. Био је само за програмски језик Ц, али је исте године проширен за Програмски језик Ц++ . Касније је развијен за друге програмске језике као што су Објецтиве-Ц, Објецтиве-Ц++, Фортран, Јава , Ада, Го и још много тога. Његова најновија верзија има знатно побољшану имплементацију програмских језика.
То је званични партнер ГНУ ОС-а; стога је усвојен као стандардни компајлер система заснованих на Линуку.
хасхмап
Компоненте ГЦЦ-а
ГЦЦ је преносиви алат и може да ради на многим оперативним системима. Такође, може се пренети на Виндовс коришћењем неких алата као нпр Цигвин, МинГВ и МинГВ-В64 . Пошто је кључна компонента ГНУ ланца алата, садржи следеће компоненте за развој апликација и оперативних система:
ГНУ колекција компајлера (ГЦЦ): То је компајлерски пакет за многе језике, као што су Ц/Ц++ и Објецтиве-Ц/Ц++.
ГНУ Маке: То је алатка за аутоматизацију која се користи за компајлирање и прављење апликација.
ГНУ Бинутилс: То је пакет који садржи бинарне услужне алате као што су линкер и асемблер .
ГНУ Дебуггер (ГДБ). Користи се за отклањање грешака у апликацијама.
ГНУ Аутотоолс: То је систем изградње који садржи неке услужне алате као што су Аутоцонф, Аутохеадер, Аутомаке и Либтоол.
ГНУ Бисон: То је генератор парсера као лек и иацц.
Процес ГЦЦ компајлера
ГЦЦ компајлира и чини извршним програмом у следећа четири корака:
Предобрада: У овом кораку, ГНУ предпроцесор (цпп.еке) креира међуфајл са изворним кодом. Претпроцесор укључује заглавља (#инцлуде) и проширује макрое (#дефине). Размотрите доњу команду:
cpp hello.c > hello.i
Горња команда ће креирати посредну датотеку 'хелло.и.'
Компилација: У овом кораку, претходно обрађени изворни код се компајлира у асемблерски код за одређени процесор.
gcc -S hello.i
Горња команда ће креирати монтажну датотеку 'хелло.с.' Опција '-с' се користи да наведе да се произведе асемблерски код, а не објектни код.
Скупштина: Асемблерски код се претвара у машински код. Креираће објектну датотеку 'хелло.о.'
as -o hello.o hello.s
Линкер: Линкер (лд.еке) је последњи корак процеса компајлера. Он повезује објектни код са кодом библиотеке и производи извршну датотеку.
ld -o hello.exe hello.o
Горња команда ће креирати извршну датотеку „хелло.еке“.
Инсталација ГЦЦ-а на Линук-у
Подразумевано долази са већином Линук дистрибуција. То можемо да проверимо извршавањем наредбе испод:
gcc -version
Горња команда ће приказати инсталирану верзију ГЦЦ алата. Ако није инсталиран, следите доле наведене кораке да бисте га инсталирали:
Корак 1: Ажурирајте листу пакета.
Да бисте ажурирали листу пакета, извршите следећу команду:
sudo apt update
Тражиће системску административну лозинку, унесите лозинку. Почеће ажурирање системског пакета. Размотрите доњи снимак излаза:
Корак 2: Инсталирајте буилд-ессентиал пакет.
Садржи различите пакете као што су гцц, г++ и маке утилити. Извршите наредбу испод да бисте је инсталирали:
sudo apt install build-essential
Горња команда ће инсталирати потребне пакете за ГЦЦ услужни програм. Сада можемо користити ГЦЦ услужни програм у нашој машини. Размотрите доњи снимак излаза:
Корак 3: Проверите инсталацију.
Да бисте потврдили инсталацију, извршите команду гцц -версион на следећи начин:
gcc --version
Приказаће инсталирану верзију услужног програма ГЦЦ. Да бисте приказали конкретније детаље о верзији, користите опцију '-в'. Размотрите доњи излаз:
Овде смо успешно инсталирали ГЦЦ услужни програм. Хајде да разумемо да га користимо. Направићемо и извршити неке ц програме користећи ГЦЦ.
Покрените први Ц програм од гцц-а
Направите основну ц програм 'Здраво Свете!'. Направите датотеку 'хелло.ц' и ставите у њу код испод:
#include int main() { printf('Hello, world! '); return 0; }
Сада компајлирајте хелло.ц на следећи начин:
gcc hello.c
Ако директно покренемо хелло.ц, избациће грешку. Нека буде извршна, подразумевана извршна датотека за Линук систем је а.оут. Да бисте извршили датотеку, извршите команду цхмод на следећи начин:
chmod a+x a.out
Сада покрените ц програм као:
./a.out
Размотрите доњи излаз:
Примери ГЦЦ команди
Неки корисни примери гцц команде су следећи:
Подразумевано, команда гцц креира објектну датотеку као 'а.оут .' Ако желите да промените подразумевано име излазне датотеке, користите '-О' опција.
Хајде да извршимо основну гцц команду:
gcc hello.c
Горња команда ће генерисати објектну датотеку 'а.оут.' Да бисте навели име датотеке објекта, извршите наредбу на следећи начин:
gcc hello.c -o hello
Генерисаће излазну датотеку „здраво“. Размотрите доњи излаз:
случајни ц
Да бисте омогућили сва упозорења у излазу, користите '-Зид' опција са гцц командом. Хајде да направимо променљиву у главној функцији хелло.ц. Размотрите доњи код:
здраво Ц:
#include int main() { int a; printf('Hello, world! '); return 0; }
Ако компајлирамо горњи код користећи опцију -Валл. Избациће упозорења. Извршите наредбу испод да бисте компајлирали датотеку:
gcc -wall hello.c
Горња команда ће приказати упозорења. Размотрите доњи излаз:
Можемо само произвести постепени излаз процеса компилације.
Направите излаз предпроцесора
Можемо произвести само предпроцесни излаз користећи опцију '-Е'. Размотрите доњу команду:
gcc -E hello.c > hello.i
Из горње команде, датотека 'Здраво, ја' који садржи претходно обрађени излаз се генерише. Размотрите доњи излаз:
Направите склопни код
Да бисте произвели асемблерски код, извршите команду са опцијом '-С'. Размотрите доњу команду:
gcc -S hello.c > hello.s
Горња команда ће генерисати 'хелло.с.' датотеку која садржи асемблерски код. Размотрите доњи излаз:
Направите преведени код
очисти нпм кеш
Можемо да произведемо само преведени код користећи опцију '-Ц'. Размотрите доњу команду:
gcc -C hello.c
Горња команда ће генерисати датотеку 'а.оут' која ће имати само машински или компајлирани код. Размотрите доњи излаз:
Направите све међуфајлове процеса компилације
Можемо да произведемо све међуфајлове процеса компилације користећи опцију '-саве-темп'. Размотрите доњи излаз:
gcc -save-temps hello.c
Горња команда ће генерисати све међуфајлове као и извршне датотеке одједном. Размотрите доњи излаз:
Можемо приказати опширне информације о сваком кораку који је предузела гцц команда. Да бисте то урадили, извршите команду са опцијом '-в'.
gcc -W -v hello.c
Размотрите доњи снимак излаза:
Разговарали смо о неким најкориснијим примерима гцц команде. Пошто гцц команда олакшава са огромним бројем опција, можете се заглавити било где док је користите. Хајде да видимо како сами добити помоћ са терминала.
ГЦЦ приручник
Ако се било где заглавите док користите команду гцц, можете добити помоћ са свог терминала. Да бисте приступили приручнику из командне линије, извршите команду ман на следећи начин:
man gcc
Горња команда ће приказати приручник који садржи опис и листу подржаних опција са кратким описом. Размотрите доњи снимак излаза:
можете да померате излаз да бисте прочитали више. Притисните тастер 'х' за помоћ и к да изађете из приручника и вратите се на терминал.