Codeblocks linux не работает компилятор

Обновлено: 03.07.2024

Code::Blocks — свободная интегрированная среда разработки (IDE) с отрытым исходным кодом, которая поддерживает использование различных компиляторов. По умолчанию Code::Blocks использует компилятор MinGW, который поставляется в комплекте (можно скачать дистрибутив и без встроенного компилятора). MinGW – это вариант компилятора GNU C/C++ для Windows. MinGW – это сокращение "Minimalist GNU для Windows". Набор MinGW включает инструменты для программирования с открытым исходным кодом, которые не зависят от каких-либо платных сторонних библиотек. Он используется многими средами разработки (Visual Studio использует собственный компилятор). MinGW включает набор GNU Compiler Collection (GCC), включая компиляторы C, C ++, ADA и Fortran. Code::Blocks имеет открытую архитектуру, что позволяет ему масштабироваться за счёт подключаемых модулей (можно писать программы как под windows, linux, так и под различные микропроцессоры типа avr и stm32). Отладчик кода в Code::Blocks поддерживает точки останова в исходном коде или в данных, которые обрабатывает программа.

Установка компилятора MinGW


Нажмимаем Install и получаем следующее окно.


Здесь в поле Installation Directory указываем расположение файлов компилятора. По умолчанию это C:\MinGW, его и оставляем. Нажимаем Continue и начинается загрузка и установка менеджера для установки MinGW.


Нажимаем Continue и получаем следующее окно.


Для программированя на C++ выбираем для установки пакеты mingw32-base-bin (A Basic MinGW Installation) и mingw32-gcc-g++-bin (The GNU C++ Compiler), а затем жмём в меню Installation -> Apply Changes. Появится окно, в котором будет отображаться загрузка выбранных пакетов.


По завершении загрузки пакетов нажимаем на кнопку Close

При первом запуске Code::Blocks автоматически обнаружит установленный компилятор. При возникновении проблем необходимо перейти в меню Settings -> Compiler. и на вкладке Toolchain executables проверить правильность пути к MinGW, а также имена файлов компилятора и линковщика. Теперь можно создавать проект.

Создание проекта

Для создания проекта необходимо перейти в меню File -> New -> Project. . Либо сразу нажать на кнопку Create a new project на стартовой странице.


В появившемся окне выбираем необходимый тип проекта. Здесь мы видим, что Code::Blocks имеет большое количество шаблонов проектов. В нашем случае это Console application (консольное приложение).


В следующем окне выбираем используемый язык программирования. Выбираем C++ и нажимаем на кнопку Next.


Далее в поле Project Title вписываем название проекта. В нашем случае это Test. Тут же указываем расположение проекта на диске (поле Folder to create project in). В указанной нами папке Code::Blocks автоматически создаст папку с ранее указанным названием проекта. Указав имя папки и имя файла, нажимаем на кнопку Next.


В следующем окне выбираем компилятор, а также сценарии сборки. По умолчанию выбран GNU GCC Compiler, который мы и будем использовать. Сценарии сборки позволяют получить несколько версий одного приложения. По умолчанию предполагается два сценария: Debug (используется при отладке) и Release (сценарий компиляции готового приложения). Хотя бы один из сценариев должен быть выбран. Если выбраны оба сценария, то в дальнейшем можно будет переключаться между ними.


Жмём Finish и получаем минимальную программу, так называемый Hello World!


Нажмимаем F9 для компиляции и запуска программы и получаем следующее окно.


Обратите внимание на кнопки на панели инструментов, предназначенные для запуска и компиляции программы.


Первая слева кнопка (с желтой шестеренкой) запускает только компиляцию программы, вторая (с зеленым треугольником) запускает на исполнение последний скомпилированный файл программы, третья (с зеленым треугольником и желтой шестеренкой) — сначала запускает компиляцию программы, а затем запускает полученный exe-файл программы. Частой ошибкой является использование кнопки запуска (с зеленым треугольником) для компиляции и запуска программы. В этом случае внесенные в исходный код изменения не будут влиять на поведение программы, поскольку программа не была перекомпилирована.

Если открытый для редактирования файл был изменен, то на его вкладке слева от имени появится звездочка как на рисунке ниже. Для сохранения программ, как и во многих других приложениях достаточно нажать сочетание клавиш Ctrl+S. Расположение (путь) и имя отрытого в данный момент файла отображается в строке состояния, в левой нижней части окна.


Если ваши программы имеют небольшой объем и состоят только из одного файла, то лучше создавать не проект, а просто новый файл (File -> New -> Empty file). Связано это с тем, что если у вас несколько проектов, то Code::Blocks будет компилировать и запускать только активный проект. Определить какой проект у вас активен в текущий момент можно по состоянию окна Management, в котором показываются все открытые проекты и файлы. Если одновремено открыто несколько проектов, то название активного будет выделено полужирным шрифтом. Если окно отсутствует, то открыть его можно через меню View -> Manager.


Для переключения между проектами необходимо навести указатель мыши, на тот проект, который вы необходимо сделать активным и затем дважды кликнуть левой кнопкой мыши на названии проекта либо кликнуть один раз правой кнопкой мыши и в появившемся контекстном меню выбрать пункт Activate project. В этом же меню доступны другие действия с проектом (в том числе добавление в проект новых файлов).

Частой ошибкой является редактирование файлов одного проекта, а запуск и тестирование другого проекта. Также если у вас открыт проект и просто отдельный файл программы, то Code::Blocks будет компилировать и запускать только активный проект. Поэтому в учебных целях, когда весь проект зачастую состоит из одного файла желательно создавать не проекты, а отдельные .cpp файлы.

Поддержка кириллицы в консоли

Проблема отображения кириллических символов в консоли Windows связана с тем, что консоль в этой операционной системе имеет собственную настройку кодовой страницы. Если Windows использует кодировку cp1251 (она же windows-1251), то консоль по умолчанию использует cp866 использовавшуюся в MS-DOS. Поэтому для корректного ввода и вывода кириллицы на консоль надо использовать пару функций SetConsoleCP() и SetConsoleOutputCP() соответственно. В качестве единственного параметра обеим функциям передается номер кодовой страницы – 1251. Для использования кодировки UTF-8 необходимо передать значение CP_UTF8.

Ниже показан пример программы, которая сначала просто выводит строку с кириллическими символами, а затем считывает строку и выводит ее обратно на экран.

Далее необходимо запустить программу, щёлкнуть левой кнопкой мыши по заголовку окна (где показывается путь к запущенному .exe файлу) и в контекстном меню выбрать пункт Свойства. Затем на вкладке Шрифт установить шрифт Lucida Console и выбрать удобный размер шрифта (там же можно настроить и другие параметры). После этого символы кириллицы будут корректно отображаться. Данную настройку достаточно выполнить один раз, для других программ и проектов будет достаточно установить кодовую страницу.

Следует заметить, что при использовании только функции setlocale(LC_ALL, "Russian") вывод осуществляется в cp1251, а ввод – в cp866. Это приводит к тому, что в памяти программы введённая с кириллическими символами строка хранится в другой кодировке. Наглядно это можно увидеть, если в показанном примере закомментировать вызов функции SetConsoleCP(). Строка которую выдаст программа будет отличаться от той, что ввели с клавиатуры.

Дополнительные настройки

Я - полный нуб в программировании, но хочу освоить. Решил начать с языка Си. Относительно, недавно перешёл на Manjaro и установил Code::Blocks, но эта среда не компелирует. Появляется надпись:

Project/Target: «c - Debug»: The compiler’s setup (GNU GCC Compiler) is invalid, so Code::Blocks cannot find/run the compiler. Probably the toolchain path within the compiler options is not setup correctly?! Do you have a compiler installed? Goto «Settings->Compiler…->Global compiler settings->GNU GCC Compiler->Toolchain executables» and fix the compiler’s setup.

Tried to run compiler executable ‘/home/wind/CodeC/bin/gcc’, but failed!

Skipping… Nothing to be done (all items are up-to-date).



Выучить английский (без него никак), поставить компилятор, т.к. IDE им не является.


Если по началу совсем никак используй гугл транслейт на худой конец

LINUX-ORG-RU ★★ ( 15.02.20 09:42:15 )
Последнее исправление: LINUX-ORG-RU 15.02.20 09:43:40 (всего исправлений: 1)



Если ты новичек, зачем используешь малопопулярные редакторы? Вместо Clion, VSCode. Рекомендую начать с последнего, там для C разработки всё есть. По крайней мере для начала 😀 Clion - это уже для серьёзных проектов

Clion - это уже для серьёзных проектов

В autotools ниумеет, в meson ниумеет, даже в автодополнение адекватно не может. Лучше выбрать KDevelop.

Вообще ничего ниумеет. Толку то от популярности?

stasolog ( 15.02.20 10:24:42 )
Последнее исправление: stasolog 15.02.20 10:25:30 (всего исправлений: 1)

Я считаю что IDE для начала это лишнее, выбери какой нибудь блокнот себе с подсветкой синтаксиса, и компилируй программы из консоли.

stasolog ( 15.02.20 10:30:01 )
Последнее исправление: stasolog 15.02.20 10:30:47 (всего исправлений: 1)


зачем ты в настройках указал, что компилятор у тебя лежит там?

зачем ты вообще их менял, если он по по умолчанию прекрасно видит системный, установленный из пакетного менеджера

grem ★★★★★ ( 15.02.20 10:41:40 )
Последнее исправление: grem 15.02.20 10:45:08 (всего исправлений: 2)



При этом обрати внимание на то как я дал эту ссылку.


Geany всем лучше.


Да они по сути балансируют рядом, но geany так то да лучше. Я вот бросил geany сразу как только они документы и символы сдвоили на одной панели, по ублюдски стало как то. Хотя я его давно не смотрел, мож чё изменилось

Вчера ночью поставил Kubuntu, установил CodeBlocks из "Центра программ, написал простенькую "хеллоу ворлд"" , и получил ошибку, порылся пару часиков в инете, ничего работающего не нашел
вот Build Log
-------------- Build: Release in Algorithm (compiler: GNU GCC Compiler)---------------

g++ -Wall -O2 -c /home/whoim/Документы/Algorithm/c++/Algorithm/1.cpp -o obj/Release/1.o
g++ -Wall -O2 -c /home/whoim/Документы/Algorithm/c++/Algorithm/test.cpp -o obj/Release/test.o
g++ -o bin/Release/Algorithm obj/Release/1.o obj/Release/test.o -s
g++: error: obj/Release/1.o: Нет такого файла или каталога
g++: error: obj/Release/test.o: Нет такого файла или каталога
g++: fatal error: no input files
compilation terminated.
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

-------------- Run: Release in Algorithm (compiler: GNU GCC Compiler)---------------

Checking for existence: /home/whoim/Документы/Algorithm/c++/Algorithm/bin/Release/Algorithm

ВложениеРазмер
3.jpg230.72 кб

Изображение пользователя fox4.

С CodeBlocks дел не имел но советую посмотреть настройки среды в частности настройки проекта куда при компиляции пишутся файлы Release/1.o Release/test.o (имеется в виду полный путь) есть подозрение что в настройках среды прописаны пути в корень (/. ) а не в домашнюю папку ( /home/whoim/Документы/Algorithm/c++/Algorithmobj/Release/. ) у CodeBlocks запущенного скорее всего с правами пользователя просто не хватает прав писать файлы в корень соответственно потом не проходит сборка.

Тема старая, но для тех, кто попадет сюда с тем же вопросом – путь к каталогу с проектом не должен содержать кирилличных символов.

Чтобы выполнялась компиляция на пути с кириллицей
в локализованной [ru] системе можно через меню CodeBlocks
Settings->Environment->View
установить параметр
[x] Internationalization (will take place after restart)
и перезапустить CodeBlocks.

Миллион $ и барышню с четверным номером этому господину! Всю бошку себе сломал с этой проблемой. А ведь на 16 убунте все работало.

Я постоянно получаю письма о том, что CodeBlocks ведет себя как-то не так. В этой статьей рассмотрим самые популярные причины, почему CodeBlocks может неверно себя вести.

1. Не хватает нужных компонентов (компилятора, отладчика, библиотек)

Нужно понимать, что CodeBlocks — это просто каркас для подключения различных инструментов. Если вы просто скачаете пустой CodeBlocks с официального сайта и попытаетесь писать и отлаживать программу, то у вас ничего не получится. CodeBlocks не сможет запустить ни комплятор, ни отладчик. Все это нужно скачивать и устанавливать отдельно.

Но тут будет новая проблема — проблема выбора. CodeBlocks поддерживает все существующие компиляторы Си, какой выбрать? То же относится к любому другому инструментарию: отладчикам, профайлерам, плагинам и т.д.

Именно поэтому я и сделал сборку Си-экспресс, чтобы можно было сразу распаковать и работать. Все нужные компоненты уже установлены. Если вы точно знаете, что вам нужен другой компонент, то просто найдите и замените его на тот, который вам нужен.

Решение: Скачайте сборку Си-экспресс .

2. Неверно указаны пути к компонентам

Эта ошибка может возникать, когда вы все скачали и установили, но неверно прописали пути. Поэтому CodeBlocks не может эти компоненты найти. В случае с компилятором вопрос решается просто. Удалите настройки и запустите CodeBlocks. При первом запуске CodeBlocks просканирует ваш диск на наличие компилятора и выдает список всех найденных компиляторов.Вам остается только сделать выбор и можно работать.Но для других компонентов это не так, поэтому нужно проверить, что все они прописаны. Для этого зайдите в меню «Настройки — Compiler… — Программы»Убедитесь, что все компоненты присутствуют на вашем компьютере.Решение: Нужные программы должны быть или в папке «bin» каталога установки компилятора, или укажите дополнительные пути для их вызова.

3. Символы кириллицы или пробелы в пути к программе CodeBlocks

Есть старая проблема с тем, что инструменты программиста часто имеют проблемы с кодировками. Считается, что программист настолько крут, что сможет эту проблему решить самостоятельно. Но для новичков в программировании это оказывается непреодолимым препятствием. Новички часто устанавливают CodeBlocks:

  • или в «c:\Program Files (x86)\CodeBlocks»
  • или в папку типа «c:\Я начинаю изучать программирование\CodeBlocks»

В обоих случаях программа будет работать неверно, так как какой-то из компонентов откажется выполняться.Например в документации на компилятор MinGW говорится:

У MinGW могут быть проблемы с путями, содержащими пробелы, а если нет, обычно другие программы, используемые с MinGW, будут испытывать проблемы с такими путями. Таким образом, мы настоятельно рекомендуем не устанавливать MinGW в любом месте с пробелами в имени пути ссылки . Вам следует избегать установки в любой каталог или подкаталог с именами, такими как «Program Files» или «Мои документы».

Решение: Установите CodeBlocks в папку «C:\Prog\CodeBlocks» или в любую другую папку, в пути к которой нет пробелов или кириллицы.

4. Символы кириллицы или пробелы в пути к разрабатываемой программе

Это следствие той же проблемы, что и в предыдущем случае. Программист нормально установил среду программирования, все работает, но вдруг какая-то новая программа отказывается компилироваться. Обычно описание ошибки выглядит как: «No such file or directory» при этом имя файла отображается в нечитаемой кодировке.

Как правило, причина в том, что путь к проекту содержит символы кириллицы или пробелы. Например проект был размещен в каталоге с именем типа: «c:\Новая папка».

Решение: Создавайте проекты в папке «c:\Work» или в любой другой папке, в пути к которой нет пробелов или кириллицы.

5. Не все пункты меню активны

Вы запустили CodeBlocks, но при этом некоторые пункты меню не активны. Например, иконки для отладки:

видя из вашей версии G++, вам нужно обновить его плохо. C++11 был доступен только с G++ 4.3. Самая последняя версия-4.7.

в версиях pre-G++ 4.7, вам придется использовать -std=c++0x, для более поздних версий, которые вы можете использовать -std=c++11.

2013-02-03 23:16:04 antonijn

Так что, вероятно, вы используете версию g++ , которая не поддерживает -std=c++11. Попробуй -std=c++0x вместо.

доступность функций C++11 доступна только для версий >= 4.3.

2013-02-03 18:30:48 stefan

вы должны попробовать это

g++-4.4 -std=c++0x or g++-4.7 -std=c++0x

2014-02-20 19:04:19 papo

2015-05-05 09:52:58 pankaj kushwaha

1. Не хватает нужных компонентов (компилятора, отладчика, библиотек)

Нужно понимать, что CodeBlocks — это просто каркас для подключения различных инструментов. Если вы просто скачаете пустой CodeBlocks с официального сайта и попытаетесь писать и отлаживать программу, то у вас ничего не получится. CodeBlocks не сможет запустить ни комплятор, ни отладчик. Все это нужно скачивать и устанавливать отдельно.

Но тут будет новая проблема — проблема выбора. CodeBlocks поддерживает все существующие компиляторы Си, какой выбрать? То же относится к любому другому инструментарию: отладчикам, профайлерам, плагинам и т.д.

Именно поэтому я и сделал сборку Си-экспресс, чтобы можно было сразу распаковать и работать. Все нужные компоненты уже установлены. Если вы точно знаете, что вам нужен другой компонент, то просто найдите и замените его на тот, который вам нужен.

Решение: Скачайте сборку Си-экспресс.

Unrecognized Command-Line Arguments

Any arguments on the command-line that the compiler does not recognize are interpreted as being possibly linker options, object program file names, or library names.

Unrecognized options (with a -) generate warnings.

Unrecognized non-options (no -) generate no warnings. However, they are passed to the linker and if the linker does not recognize them, they generate linker error messages.

demo% f77 -bit move.f <- -bit is not a recognized f77 optionf77: Warning: Option -bit passed to ld, if ld is invoked, ignored otherwisemove.f: MAIN move:demo% f77 fast move.f <- The user meant to type -fastmove.f: MAIN move:ld: fatal: file fast: cannot open file; errno=2ld: fatal: File processing errors. No output written to a.out

Note that in the first example, -bit is not recognized by f77 and the option is passed on to the linker (ld), who tries to interpret it. Because single letter ld options may be strung together, the linker sees -bit as -b-i -t, which are all legitimate ld options! This may (or may not) be what the user expects, or intended.

In the second example, the user intended to type the f77/f90 option -fast but neglected the leading dash. The compiler again passes the argument to the linker which, in turn, interprets it as a file name.

These examples indicate that extreme care should be observed when composing compiler command lines!

2. Неверно указаны пути к компонентам

Эта ошибка может возникать, когда вы все скачали и установили, но неверно прописали пути. Поэтому CodeBlocks не может эти компоненты найти.

В случае с компилятором вопрос решается просто. Удалите настройки и запустите CodeBlocks. При первом запуске CodeBlocks просканирует ваш диск на наличие компилятора и выдает список всех найденных компиляторов.


Вам остается только сделать выбор и можно работать.

Но для других компонентов это не так, поэтому нужно проверить, что все они прописаны. Для этого зайдите в меню «Настройки — Compiler… — Программы»


Убедитесь, что все компоненты присутствуют на вашем компьютере.

Решение: Нужные программы должны быть или в папке «bin» каталога установки компилятора, или укажите дополнительные пути для их вызова.

3. Символы кириллицы или пробелы в пути к программе CodeBlocks

Есть старая проблема с тем, что инструменты программиста часто имеют проблемы с кодировками. Считается, что программист настолько крут, что сможет эту проблему решить самостоятельно. Но для новичков в программировании это оказывается непреодолимым препятствием. Новички часто устанавливают CodeBlocks:

  • или в «c:Program Files (x86)CodeBlocks»
  • или в папку типа «c:Я начинаю изучать программированиеCodeBlocks»

В обоих случаях программа будет работать неверно, так как какой-то из компонентов откажется выполняться.

Например в документации на компилятор MinGW говорится:

У MinGW могут быть проблемы с путями, содержащими пробелы, а если нет, обычно другие программы, используемые с MinGW, будут испытывать проблемы с такими путями. Таким образом, мы настоятельно рекомендуем не устанавливать MinGW в любом месте с пробелами в имени пути ссылки . Вам следует избегать установки в любой каталог или подкаталог с именами, такими как «Program Files» или «Мои документы».

Решение: Установите CodeBlocks в папку «C:ProgCodeBlocks» или в любую другую папку, в пути к которой нет пробелов или кириллицы.

5. Не все пункты меню активны

Вы запустили CodeBlocks, но при этом некоторые пункты меню не активны. Например, иконки для отладки:


Это происходит в том случае, если вы связали расширение «.c» с вызовом CodeBlocks. В этом случае среда работает как редактор исходного текста. Чтобы активировать все функции среды нужно открыть проект.

Решение: Сначала запустите CodeBlocks, а затем откройте проект. Проект имеет расширение «.cbp».

7. Программа работает из CodeBlocks, но если запустить ее отдельно, то она сразу закрывается

Это нормальная работа консольной программы. Если ее запускать на выполнение, то она запускается, выполняется, а после выполнения окно консоли закрывается.

При запуске внутри Codeblocks есть специальная настройка, которая не дает окну закрыться.


Решение: Если вам нужно получить информацию о работе программы, то или запросите ввод пользователя, или всю информацию о работе запишите в файл.

8. CodeBlocks запускает предыдущую версию программы

Эта ошибка возникает в том случае, если вы поменяли что-либо в настройках компилятора, но не поменяли программу. Например, если вы предыдущем примере уберете галочку «Пауза после выполнения» и нажмете F9, то программа все равно будет запущена с паузой.

Это происходит потому, что действует правило: компилятор запускается, если вносились исправления в текст программы. Так как исправления не было, то CodeBlocks не запускает компиляцию, а запускает уже готовый файл.

Решение: Вставьте пробел в текст программы и нажмите F9. Или выполните пункт меню «Сборка — Пересобрать».

9. Компиляция проходит без ошибок, но программа не запускается

Эта ошибка доставляет немало неприятных минут. Программист долго ищет ошибку, но никакой ошибки нет.

Программа не запускается, потому что вы не завершили предыдущую запущенную скомпилированную программу, поэтому компилятор не может записать в файл новый скомпилированный код.

В более сложном случае программа зациклилась и нельзя ее нормально завершить. В этом случае нажмите Ctrl+Alt+Del и снимите зависшую программу.

Решение: Завершите запущенную перед этим скомпилированную программу.

10. Антивирус блокирует запись программы на диск


Решение: Отключите антивирус.

11. Windows блокирует работу CodeBlocks

Бывает так, что на одном компьютере CodeBlocks прекрасно работает, а при копировании на другой компьютер возникают ошибки. Это может быть следствием того, что Windows блокирует некоторые возможности программы.

Решение. Запустите CodeBlocks от имени администратора
Для этого нажмите правую кнопку мыши на файле codeblocks.exe


13. Неверное указание пути к компилятору

При запуске CodeBlocks появляется ошибка: «Can’t find compiler executable in your in your configured search path’s for GNU GCC COMPILER»


Это означает, что в настройках неверное указание пути к компилятору. Для исправления зайдите в меню «Настройки — Compiler… — Программы» и нажмите кнопку «Автоопределение».


Если CodeBlocks обнаружит компилятор, то можно работать. Если нет, то переустановите «Си-экспресс».

14. Программа на GTK+ работает только в среде CodeBlocks

Если запускать GTK-программу в среде Code::Blocks, то все работает, а если запустить exe-файл отдельно, то окна не появляются. Это означает, что программа не может найти GTK-библиотеки.

Они есть в сборке «Си-экспресс» в папке GTK-LIB. Их нужно скопировать в папку с программой. Для разработки в папку Debug, а для релиза в папку Release.

Читайте также: