Я постоянно получаю письма о том, что 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, но при этом некоторые пункты меню не активны. Например, иконки для отладки:

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

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

6. При запуске компилятора ничего не происходит

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

Решение: Откройте проект или создайте новый.

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

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

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

Эта ошибка возникает в том случае, если вы поменяли что-либо в настройках компилятора, но не поменяли программу. Например, если вы предыдущем примере уберете галочку «Пауза после выполнения» и нажмете F9, то программа все равно будет запущена с паузой.
Это происходит потому, что действует правило: компилятор запускается, если вносились исправления в текст программы. Так как исправления не было, то CodeBlocks не запускает компиляцию, а запускает уже готовый файл.
Решение: Вставьте пробел в текст программы и нажмите F9. Или выполните пункт меню «Сборка — Пересобрать».

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

Эта ошибка доставляет немало неприятных минут. Программист долго ищет ошибку, но никакой ошибки нет.
Программа не запускается, потому что вы не завершили предыдущую запущенную скомпилированную программу, поэтому компилятор не может записать в файл новый скомпилированный код.
В более сложном случае программа зациклилась и нельзя ее нормально завершить. В этом случае нажмите Ctrl+Alt+Del и снимите зависшую программу.
Решение: Завершите запущенную перед этим скомпилированную программу.

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

Вы получаете следующее сообщение: «Permission denied».

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

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

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

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

12. Отладчик не останавливается на точке останова

Вы поставили точку останова, но отладчик ее игнорирует. Это следствие ошибки №4. У вас символы кириллицы или пробелы в пути к программе.

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

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.


    23 replies to "14 причин, почему CodeBlocks не работает"

    • лариса

      cc1plus.exe: error: unrecognized command line option «-std=c++11»
      что за ошибка?

      • Константин Шереметьев

        Это ошибка говорит о том, что неправильно настроен компилятор. Настройки компилятора устанавливаются в меню «Настройки — Compiler».

    • Евгений

      Добрый день!
      не появляется консоль
      collect2.exe: error: ld returned 1 exit status

    • Андрей

      Добрый день. Программа не запускается — зависает на окне «приветствия». В чем может быть проблема?

      • Константин Шереметьев

        Попробуйте запустить от имени администратора. Правый клик на программе и выбрать «Запуск от имени администратора».

        • Андрей

          Пробовал. Перустанавливал с выкл антивирусом. Менял директорию как в п.3 данной статьи. Ничего не помогает.

    • Юрий

      Всегда устанавливал в “c:\Program Files (x86)\CodeBlocks”, и никаких проблем не видел, если используется стандартный (идущий с C::B компилятор). В этом случае путь к компилятору определяется сам автоматически. Единственная причина по которой он может определиться не корректно, это установленная, еще одна версия компилятора MinGW (например, идущая с другой IDE типа Dev-C++). Других причин я никогда не наблюдал.
      При этом если добавлять новые файлы к проекту стандартно через мастер создания классов, то нет даже проблем, если в путях к проекту есть кириллица и пробелы.

    • Вася

      Приветствую! Ошибка: Запуск программы невозможен, … libgcc_s_dw2-1.dll…
      не помню куда надо прописать -static

      • Константин Шереметьев

        Напишите более конкретно, что за ошибка.

    • Никитикс

      Ошибка под номером 4. Создал в диске С новую папку с английским названием, без пробелов, но все равно не работает(

    • стефан

      Виндовс уведомления не выводятся на экран cairo (библиотека) не создаёт файл PDF

      • Константин Шереметьев

        Здесь надо разбираться.

    • стефан

      Но всё компилируется нормально.

      • Константин Шереметьев

        Возможно, дело в ошибках в программе.

    • Дмитрий

      Добрый день. Такая проблема.
      Создаю проект. пишу программу, все работает.
      Добавляю класс(пытаюсь) через создатель классов.(с галочкой создать файл реализации).
      Пишет ошибку «Файл D:\C++\Test\include\Test.h не удалось сохранить»
      и следом
      «Не удалось сохранить файл заголовка D:\C++\Test\include\Test.h. Прерываю»
      Причем файл создается, точнее 2 файла:
      1)Test.h
      2)Test.h.save-failed
      В него можно писать, но программа его не видит, и после перезапуска он и в проекте перестает видится. Но на диске он всё так же присутствует.

      Самое странное, что ошибка то есть, то нет.
      Можно раз 5 пробовать создавать класс(все время выполняя одни и те же действия, и стирая после каждой попытки «кривые файлы»), и 4 раза будет неудачно, а один раз все создастся без проблем.

      Code::Blocks запускаю от имени администратора. Запись на диск разрешена.

      Подскажите пожалуйста, в чем тут может быть проблема?

      • Константин Шереметьев

        Повторить ошибку не удалось.
        Попробуйте в пути убрать знаки «+», то есть переименуйте папку «C++»? например, в «test».

    • и

      Помогите скомпиллировать готовый проект
      https://github.com/arpytanshu/Discrete-Particle-Simulation
      там их два например первый
      вроде установил все что только можно . толку нет

      еслои можно удаленно через тимвивер или иное

      еще вопрос
      можно ли весь мусор
      все DLL хеадеры
      скидывать в одну папку( дополнительный путь)

      • Константин Шереметьев

        Это сложная задача. Чтобы запустить этот проект нужно сначала подключить библиотеки OpenCL и freeglut. Затем уже можно компилировать данный проект.
        >можно ли… все DLL хеадеры скидывать в одну папку( дополнительный путь)
        Теоретически, да, но это неудобно. Лучше настраивать пути к DLL в проекте.

    • Stepan Iacoban

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

      • Константин Шереметьев

        Мало информации, чтобы что-то сказать. Самое простое — это переустановить сборку.

Leave a Reply

Your email address will not be published.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.