[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/compiling-c":3,"mdc-pedtp4-key":526,"mdc-dulv0g-key":546,"mdc-ffyhcj-key":563,"mdc-wjwee4-key":593,"mdc--906qz0-key":617,"mdc-vjrcwb-key":648,"mdc--fx3cai-key":680,"mdc--qbkg9y-key":704,"related-/guides/linux/compiling-cpp,/guides/linux/installing-dev-tools,/errors/linux/compilation-error":734,"mdc--1nxb2z-key":735},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":459,"code":80,"createdAt":460,"description":461,"difficulty":462,"draft":463,"estimatedTime":464,"extension":465,"faq":466,"howToSteps":479,"howToTotalTime":495,"image":459,"keywords":496,"locale":506,"meta":507,"navigation":186,"path":508,"platform":509,"related":510,"section":514,"seo":515,"severity":80,"stem":516,"summary":517,"tags":518,"twitterCreator":459,"twitterSite":459,"type":524,"updatedAt":460,"__hash__":525},"content_ru/guides/linux/compiling-c.md","Сборка C-кода на Linux: полное руководство от установки до запуска",[7,8,9,10],"Ubuntu 22.04","Debian 11","Fedora 38","Arch Linux","FixPedia Team",{"type":13,"value":14,"toc":446},"minimark",[15,20,24,28,62,66,71,74,112,115,133,136,155,158,162,169,212,215,219,225,244,251,269,273,276,291,294,303,310,313,317,320,335,345,349,374,378,387,431,442],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23],"p",{},"Компилирование C-кода — это первый шаг к созданию исполняемых программ на Linux. Даже небольшие проекты требуют корректной сборки, чтобы избежать ошибок запуска. В этом гайде вы получите пошаговую инструкцию по установке инструментов компиляции, созданию исходного файла, его сборке и запуску результата. После выполнения всех шагов у вас будет готовый рабочий процесс для любого C-проекта.",[16,25,27],{"id":26},"требования-подготовка","Требования / Подготовка",[29,30,31,39,50,56],"ul",{},[32,33,34,38],"li",{},[35,36,37],"strong",{},"Операционная система:"," Ubuntu 22.04, Debian 11, Fedora 38 или Arch Linux (любая современная дистрибутива).",[32,40,41,44,45,49],{},[35,42,43],{},"Права пользователя:"," Необходимы права администратора (",[46,47,48],"code",{},"sudo","), чтобы устанавливать пакеты.",[32,51,52,55],{},[35,53,54],{},"Свободное место:"," ~50 МБ для компилятора и стандартных библиотек.",[32,57,58,61],{},[35,59,60],{},"Базовые знания:"," Понимание основ языка C (переменные, функции, циклы) поможет лучше понять процесс сборки.",[16,63,65],{"id":64},"пошаговая-инструкция","Пошаговая инструкция",[67,68,70],"h3",{"id":69},"шаг-1-установить-необходимые-инструменты","Шаг 1: Установить необходимые инструменты",[21,72,73],{},"На Debian-основанных системах выполните:",[75,76,81],"pre",{"className":77,"code":78,"language":79,"meta":80,"style":80},"language-bash shiki shiki-themes github-light github-dark","sudo apt update && sudo apt install build-essential\n","bash","",[46,82,83],{"__ignoreMap":80},[84,85,88,91,95,98,102,104,106,109],"span",{"class":86,"line":87},"line",1,[84,89,48],{"class":90},"sScJk",[84,92,94],{"class":93},"sZZnC"," apt",[84,96,97],{"class":93}," update",[84,99,101],{"class":100},"sVt8B"," && ",[84,103,48],{"class":90},[84,105,94],{"class":93},[84,107,108],{"class":93}," install",[84,110,111],{"class":93}," build-essential\n",[21,113,114],{},"На Fedora:",[75,116,118],{"className":77,"code":117,"language":79,"meta":80,"style":80},"sudo dnf groupinstall 'Development Tools'\n",[46,119,120],{"__ignoreMap":80},[84,121,122,124,127,130],{"class":86,"line":87},[84,123,48],{"class":90},[84,125,126],{"class":93}," dnf",[84,128,129],{"class":93}," groupinstall",[84,131,132],{"class":93}," 'Development Tools'\n",[21,134,135],{},"На Arch Linux:",[75,137,139],{"className":77,"code":138,"language":79,"meta":80,"style":80},"sudo pacman -S base-devel\n",[46,140,141],{"__ignoreMap":80},[84,142,143,145,148,152],{"class":86,"line":87},[84,144,48],{"class":90},[84,146,147],{"class":93}," pacman",[84,149,151],{"class":150},"sj4cs"," -S",[84,153,154],{"class":93}," base-devel\n",[21,156,157],{},"Эти команды установят GCC, make, make‑info и другие необходимые утилиты.",[67,159,161],{"id":160},"шаг-2-создать-исходный-файл","Шаг 2: Создать исходный файл",[21,163,164,165,168],{},"Откройте текстовый редакатор и создайте файл ",[46,166,167],{},"hello.c",". Вставьте простую «приветственную» программу:",[75,170,174],{"className":171,"code":172,"language":173,"meta":80,"style":80},"language-c shiki shiki-themes github-light github-dark","#include \u003Cstdio.h>\n\nint main() {\n    printf(\"Привет, мир!\\n\");\n    return 0;\n}\n","c",[46,175,176,181,188,194,200,206],{"__ignoreMap":80},[84,177,178],{"class":86,"line":87},[84,179,180],{},"#include \u003Cstdio.h>\n",[84,182,184],{"class":86,"line":183},2,[84,185,187],{"emptyLinePlaceholder":186},true,"\n",[84,189,191],{"class":86,"line":190},3,[84,192,193],{},"int main() {\n",[84,195,197],{"class":86,"line":196},4,[84,198,199],{},"    printf(\"Привет, мир!\\n\");\n",[84,201,203],{"class":86,"line":202},5,[84,204,205],{},"    return 0;\n",[84,207,209],{"class":86,"line":208},6,[84,210,211],{},"}\n",[21,213,214],{},"Сохраните файл и выйдите из редактора.",[67,216,218],{"id":217},"шаг-3-скомпилировать-код","Шаг 3: Скомпилировать код",[21,220,221,222,224],{},"Откройте терминал в каталоге с файлом ",[46,223,167],{}," и выполните команду компиляции:",[75,226,228],{"className":77,"code":227,"language":79,"meta":80,"style":80},"gcc hello.c -o hello\n",[46,229,230],{"__ignoreMap":80},[84,231,232,235,238,241],{"class":86,"line":87},[84,233,234],{"class":90},"gcc",[84,236,237],{"class":93}," hello.c",[84,239,240],{"class":150}," -o",[84,242,243],{"class":93}," hello\n",[21,245,246,247,250],{},"По умолчанию компилятор выдаёт исполняемый файл ",[46,248,249],{},"hello",". Для ускорения программы можно добавить оптимизацию:",[75,252,254],{"className":77,"code":253,"language":79,"meta":80,"style":80},"gcc hello.c -O2 -o hello\n",[46,255,256],{"__ignoreMap":80},[84,257,258,260,262,265,267],{"class":86,"line":87},[84,259,234],{"class":90},[84,261,237],{"class":93},[84,263,264],{"class":150}," -O2",[84,266,240],{"class":150},[84,268,243],{"class":93},[67,270,272],{"id":271},"шаг-4-запустить-программу","Шаг 4: Запустить программу",[21,274,275],{},"Сделайте исполняемый файл доступным для запуска:",[75,277,279],{"className":77,"code":278,"language":79,"meta":80,"style":80},"chmod +x hello\n",[46,280,281],{"__ignoreMap":80},[84,282,283,286,289],{"class":86,"line":87},[84,284,285],{"class":90},"chmod",[84,287,288],{"class":93}," +x",[84,290,243],{"class":93},[21,292,293],{},"Затем запустите его:",[75,295,297],{"className":77,"code":296,"language":79,"meta":80,"style":80},"./hello\n",[46,298,299],{"__ignoreMap":80},[84,300,301],{"class":86,"line":87},[84,302,296],{"class":90},[21,304,305,306,309],{},"Вы должны увидеть строку ",[46,307,308],{},"Привет, мир!",".",[311,312],"in-article-ad",{},[67,314,316],{"id":315},"шаг-5-очистить-временные-файлы","Шаг 5: Очистить временные файлы",[21,318,319],{},"По завершении разработки удалите скомпилированный бинарник:",[75,321,323],{"className":77,"code":322,"language":79,"meta":80,"style":80},"rm -f hello\n",[46,324,325],{"__ignoreMap":80},[84,326,327,330,333],{"class":86,"line":87},[84,328,329],{"class":90},"rm",[84,331,332],{"class":150}," -f",[84,334,243],{"class":93},[21,336,337,338,341,342,309],{},"Если вы использовали ",[46,339,340],{},"Makefile",", выполните ",[46,343,344],{},"make clean",[16,346,348],{"id":347},"проверка-результата","Проверка результата",[29,350,351,362,368],{},[32,352,353,356,357,359,360,309],{},[35,354,355],{},"Список файлов:"," Проверьте наличие ",[46,358,167],{}," и ",[46,361,249],{},[32,363,364,367],{},[35,365,366],{},"Вывод:"," Запустите программу и убедитесь, что вывод соответствует ожидаемому.",[32,369,370,373],{},[35,371,372],{},"Проверка ошибок:"," Если компилятор выдаёт ошибки, проверьте синтаксис, наличие включений и правильность путей.",[16,375,377],{"id":376},"возможные-проблемы","Возможные проблемы",[379,380,381],"blockquote",{},[21,382,383,386],{},[35,384,385],{},"⚠️ Важно:"," Все приведённые решения работают на стандартных дистрибутивах. На пользовательских сборках могут отличаться имена пакетов.",[29,388,389,397,409,417],{},[32,390,391,396],{},[35,392,393],{},[46,394,395],{},"gcc: command not found"," – компилятор не установлен. Повторите шаг установки инструментов.",[32,398,399,404,405,408],{},[35,400,401],{},[46,402,403],{},"undefined reference to ‘main’"," – в файле отсутствует функция ",[46,406,407],{},"main"," или используется неправильный файл. Убедитесь, что компилируется тот исходник, который вы редактировали.",[32,410,411,416],{},[35,412,413],{},[46,414,415],{},"relocation error: cannot read"," – исполняемый файл собран для другой архитектуры (например, при кросс-компиляции). Переустановите компилятор нативной архитектуры или добавьте правильные флаги.",[32,418,419,424,425,427,428,309],{},[35,420,421],{},[46,422,423],{},"make: *** No rules to make target"," – файл ",[46,426,340],{}," отсутствует или имеет синтаксические ошибки. Проверьте правила или создайте минимальный файл, если не нужен ",[46,429,430],{},"make",[21,432,433,434,437,438,441],{},"Эти ошибки часто возникают у новичков; их быстро устранить, следуя шагам выше. Если проблема не решена, проверьте установку пакетов и переменные окружения (",[46,435,436],{},"PATH",", ",[46,439,440],{},"LD_LIBRARY_PATH",").",[443,444,445],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":80,"searchDepth":183,"depth":183,"links":447},[448,449,450,457,458],{"id":18,"depth":183,"text":19},{"id":26,"depth":183,"text":27},{"id":64,"depth":183,"text":65,"children":451},[452,453,454,455,456],{"id":69,"depth":190,"text":70},{"id":160,"depth":190,"text":161},{"id":217,"depth":190,"text":218},{"id":271,"depth":190,"text":272},{"id":315,"depth":190,"text":316},{"id":347,"depth":183,"text":348},{"id":376,"depth":183,"text":377},null,"2026-08-12 18:27:59","Узнайте, как собрать C-программу на Linux за 10 минут. Пошаговое руководство с командами, примерами и решением типичных проблем.","medium",false,"10-15 мин","md",[467,470,473,476],{"question":468,"answer":469},"Как установить GCC на Ubuntu?","Запустите `sudo apt update && sudo apt install build-essential` — это установит GCC, make и другие инструменты.",{"question":471,"answer":472},"Почему команда `gcc` не найдена?","Вероятно, инструменты компиляции не установлены или переменная PATH не включает `/usr/bin`. Переустановите пакет или добавьте ссылку в PATH.",{"question":474,"answer":475},"Как использовать `make` для сборки?","Создайте файл `Makefile` с правилами, затем выполните `make`. Это автоматически вызовет `gcc` с нужными флагами.",{"question":477,"answer":478},"Как запустить собранную программу?","Используйте `./a.out` (или имя исполняемого файла) в терминале после обеспечения прав на выполнение (`chmod +x`).",[480,483,486,489,492],{"name":481,"text":482},"Установить необходимые инструменты","На Debian-основанных системах выполните `sudo apt update && sudo apt install build-essential`. На Fedora: `sudo dnf groupinstall 'Development Tools'`. На Arch: `sudo pacman -S base-devel`.",{"name":484,"text":485},"Создать исходный файл","Откройте текстовый редактор (например, `nano hello.c`) и напишите простую программу, например:\n\n```c\n#include \u003Cstdio.h>\nint main() {\n    printf(\"Привет, мир!\\n\");\n    return 0;\n}\n```",{"name":487,"text":488},"Скомпилировать код","Выполните `gcc hello.c -o hello`. Если вы хотите включить оптимизацию, добавьте `-O2`: `gcc hello.c -O2 -o hello`.",{"name":490,"text":491},"Запустить программу","Исполните `./hello`. Если появляется ошибка «исполнительный файл не найден», сначала проверьте права: `chmod +x hello`.",{"name":493,"text":494},"Очистить временные файлы","Удалите скомпилированный бинарник и любые объекты: `rm -f hello *.o`. Для проектов с `Makefile` используйте `make clean`.","PT15M",[497,498,499,500,501,502,503,504,505],"компилирование C-кода на Linux","как собрать программу на gcc","установка gcc ubuntu","команда make","создать исполняемый файл из .c","компиляция C в терминале","установка clang linux","оптимизация компиляции gcc","установка make ubuntu","ru_RU",{},"/guides/linux/compiling-c","linux",[511,512,513],"/guides/linux/compiling-cpp","/guides/linux/installing-dev-tools","/errors/linux/compilation-error","Гайды Linux",{"title":5,"description":461},"guides/linux/compiling-c","В этом гайде вы научитесь компилировать C-код на распространённых дистрибутивах Linux, устанавливать необходимые инструменты и запускать собранные программы.",[519,520,521,522,523],"Linux","C","GCC","компиляция","терминал","guide","whcynwSvkyLTuFA2jsbKFy7IdK-BdU-qLV3_yd0d2Ck",{"data":527,"body":528},{},{"type":529,"children":530},"root",[531],{"type":532,"tag":21,"props":533,"children":534},"element",{},[535,538,544],{"type":536,"value":537},"text","Запустите ",{"type":532,"tag":46,"props":539,"children":541},{"className":540},[],[542],{"type":536,"value":543},"sudo apt update && sudo apt install build-essential",{"type":536,"value":545}," — это установит GCC, make и другие инструменты.",{"data":547,"body":548},{},{"type":529,"children":549},[550],{"type":532,"tag":21,"props":551,"children":552},{},[553,555,561],{"type":536,"value":554},"Вероятно, инструменты компиляции не установлены или переменная PATH не включает ",{"type":532,"tag":46,"props":556,"children":558},{"className":557},[],[559],{"type":536,"value":560},"/usr/bin",{"type":536,"value":562},". Переустановите пакет или добавьте ссылку в PATH.",{"data":564,"body":565},{},{"type":529,"children":566},[567],{"type":532,"tag":21,"props":568,"children":569},{},[570,572,577,579,584,586,591],{"type":536,"value":571},"Создайте файл ",{"type":532,"tag":46,"props":573,"children":575},{"className":574},[],[576],{"type":536,"value":340},{"type":536,"value":578}," с правилами, затем выполните ",{"type":532,"tag":46,"props":580,"children":582},{"className":581},[],[583],{"type":536,"value":430},{"type":536,"value":585},". Это автоматически вызовет ",{"type":532,"tag":46,"props":587,"children":589},{"className":588},[],[590],{"type":536,"value":234},{"type":536,"value":592}," с нужными флагами.",{"data":594,"body":595},{},{"type":529,"children":596},[597],{"type":532,"tag":21,"props":598,"children":599},{},[600,602,608,610,616],{"type":536,"value":601},"Используйте ",{"type":532,"tag":46,"props":603,"children":605},{"className":604},[],[606],{"type":536,"value":607},"./a.out",{"type":536,"value":609}," (или имя исполняемого файла) в терминале после обеспечения прав на выполнение (",{"type":532,"tag":46,"props":611,"children":613},{"className":612},[],[614],{"type":536,"value":615},"chmod +x",{"type":536,"value":441},{"data":618,"body":619},{},{"type":529,"children":620},[621],{"type":532,"tag":21,"props":622,"children":623},{},[624,626,631,633,639,641,647],{"type":536,"value":625},"На Debian-основанных системах выполните ",{"type":532,"tag":46,"props":627,"children":629},{"className":628},[],[630],{"type":536,"value":543},{"type":536,"value":632},". На Fedora: ",{"type":532,"tag":46,"props":634,"children":636},{"className":635},[],[637],{"type":536,"value":638},"sudo dnf groupinstall 'Development Tools'",{"type":536,"value":640},". На Arch: ",{"type":532,"tag":46,"props":642,"children":644},{"className":643},[],[645],{"type":536,"value":646},"sudo pacman -S base-devel",{"type":536,"value":309},{"data":649,"body":650},{},{"type":529,"children":651},[652],{"type":532,"tag":21,"props":653,"children":654},{},[655,657,663,665,671,673,679],{"type":536,"value":656},"Выполните ",{"type":532,"tag":46,"props":658,"children":660},{"className":659},[],[661],{"type":536,"value":662},"gcc hello.c -o hello",{"type":536,"value":664},". Если вы хотите включить оптимизацию, добавьте ",{"type":532,"tag":46,"props":666,"children":668},{"className":667},[],[669],{"type":536,"value":670},"-O2",{"type":536,"value":672},": ",{"type":532,"tag":46,"props":674,"children":676},{"className":675},[],[677],{"type":536,"value":678},"gcc hello.c -O2 -o hello",{"type":536,"value":309},{"data":681,"body":682},{},{"type":529,"children":683},[684],{"type":532,"tag":21,"props":685,"children":686},{},[687,689,695,697,703],{"type":536,"value":688},"Исполните ",{"type":532,"tag":46,"props":690,"children":692},{"className":691},[],[693],{"type":536,"value":694},"./hello",{"type":536,"value":696},". Если появляется ошибка «исполнительный файл не найден», сначала проверьте права: ",{"type":532,"tag":46,"props":698,"children":700},{"className":699},[],[701],{"type":536,"value":702},"chmod +x hello",{"type":536,"value":309},{"data":705,"body":706},{},{"type":529,"children":707},[708],{"type":532,"tag":21,"props":709,"children":710},{},[711,713,719,721,726,728,733],{"type":536,"value":712},"Удалите скомпилированный бинарник и любые объекты: ",{"type":532,"tag":46,"props":714,"children":716},{"className":715},[],[717],{"type":536,"value":718},"rm -f hello *.o",{"type":536,"value":720},". Для проектов с ",{"type":532,"tag":46,"props":722,"children":724},{"className":723},[],[725],{"type":536,"value":340},{"type":536,"value":727}," используйте ",{"type":532,"tag":46,"props":729,"children":731},{"className":730},[],[732],{"type":536,"value":344},{"type":536,"value":309},[],{"data":736,"body":737},{},{"type":529,"children":738},[739,752,762],{"type":532,"tag":21,"props":740,"children":741},{},[742,744,750],{"type":536,"value":743},"Откройте текстовый редактор (например, ",{"type":532,"tag":46,"props":745,"children":747},{"className":746},[],[748],{"type":536,"value":749},"nano hello.c",{"type":536,"value":751},") и напишите простую программу, например:",{"type":532,"tag":75,"props":753,"children":757},{"className":754,"code":755,"language":173,"meta":80,"style":756},"language-c","#include \u003Cstdio.h>\nint main() {\n    printf(\"Привет, мир!\\n\");\n    return 0;\n}\n","undefined",[758],{"type":532,"tag":46,"props":759,"children":760},{"__ignoreMap":80},[761],{"type":536,"value":755},{"type":532,"tag":443,"props":763,"children":764},{},[765],{"type":536,"value":80}]