Code :: Блоки с MinGW-связью не удаются

0

Я использую Code :: Blocks (версия 13.12) с MinGW (версия 4.7.1) на 32-разрядной Windows 7.

При попытке создать мой проект я получаю следующую ошибку после этапа компиляции:

Execution of 'mingw32-g++.exe  -o cb_dlv.exe
...huge list of *.o files...
in 'D:\Workspace\cb_dlv' failed.

Конечно, нет проблем с исполняемыми файлами toolchain, так как мои другие проекты компилируются и хорошо связаны, и все инструменты находятся в их правильных местах. mingw32-g++.exe видно из cmd поэтому никаких проблем с PATH. Рабочее пространство для очистки также никоим образом не помогает. Я уже пытался переместить файлы проекта, чтобы в пути не было пробелов, но это тоже не помогло. Также как повторное открытие/переустановка/перезагрузка.

Какие-либо предложения?

  • 0
    Не уверен, но я думаю, что это происходит, когда вы не устанавливаете CB в стандартном месте. Где-то в меню вы можете найти опцию, которая будет искать местоположение MINGW, и я думаю, после этого он должен работать. Я использовал CB в прошлый раз давным-давно, так что извините, если я ошибаюсь.
  • 0
    CB устанавливается в каталог по умолчанию, а местоположение MinGW устанавливается и видно из CB. Как я уже упоминал выше, с исполняемыми файлами tolchain проблем не возникает.
Теги:
linker
codeblocks
mingw

2 ответа

1
Лучший ответ

Так как я нашел решение, вот оно.

Основная проблема заключалась в том, что в Windows 7 ограничение на длину командной строки составляет около 32 тыс. Символов. MinGW компилятор и компоновщик попали в этот предел, строя проекты с огромным количеством файлов в них. Это фундаментальное ограничение API Windows, которое использует MinGW.

Решение: сократите командную строку любым способом: объедините несколько файлов в один отдельный проект на несколько, переименуйте подкаталоги с длинными именами и т.д.

0

Вы настроили свой проект на использование настраиваемого файла makefile? Каковы ваши системные переменные сборки? Доступны ли объектные файлы в D:\Workspace\cb_dlv? Это единственный выход вашего журнала компиляции или есть другой выход до него? Ваши целевые задачи по созданию проекта настроены разумно?

вы должны увидеть журнал системы сборки, что он компилирует ваши файлы c/c++ в объектные файлы до того, как произойдет последний этап компоновки, например:

mingw32-g++.exe -c D:\Workspace\cb_dlv\file.c -o D:\Workspace\cb_dlv\obj\Debug\file.o

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

  • 0
    Нет, я не использовал собственные make-файлы, просто обычные опции Build / Rebuild Code :: Blocks.
  • 0
    Объектные файлы создаются и доступны. Я компилирую со следующими параметрами (фрагмент журнала компиляции): mingw32-g++.exe -w -nostdinc -nostdinc++ ...some internal defines... ...list of headers' directories... -ID: -c "D:\Workspace\dlv\Stack.cpp" -o "obj\Stack.o" . Причина использования -nostdinc и -nostdinc ++ состоит в том, что я пытаюсь скомпилировать библиотеку, которая имеет собственную реализацию стандартных заголовков.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню