Code :: Блокирует ошибку предварительной обработки ресурса

0

Я пытаюсь добавить файл ресурсов, чтобы включить значок для моего приложения формы win32 в Code :: Blocks. Я создал файл resource.rc и добавил его в свой проект и поместил свой значок в корневую папку проекта (где находятся исходные файлы), и я продолжаю получать неудачную ошибку предварительной обработки.

Это то, что выглядит файл resource.rc

#ifndef _resource_rc
#define _resource_rc

MAINICON ICON "icon1.ico"

#endif

Мой файл main.cpp - это просто нетронутое приложение формы win32, и сам проект не затрагивается, кроме добавления файла resource.rc в проект.

Ошибка сообщения сборки

||preprocessing failed.|
||=== Build finished: 1 errors, 0 warnings ===|

И журнал сборки

gcc: Files\: No such file or directory
gcc: \(x86\)\CodeBlocks\MinGW\include: No such file or directory
windres.exe: preprocessing failed.
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings

Я проверил, где установлен код :: Blocks, и он находится в \Program Files(x86)\ где, как кажется, gcc ищет папку с именем \(x86)\. Может быть, это проблема?

Если я удалю файл ресурсов, приложение будет компилироваться и работать правильно.

Спасибо за любую помощь.

edit: Я включил полный вывод компилятора и вот что выполняется:

windres.exe -i C:\Users\user\Desktop\MENOET~1\resource.rc -J rc -o obj\Debug\resource.res -O coff -I"C:\Program Files (x86)\CodeBlocks\MinGW\include" 
gcc: Files\: No such file or directory
gcc: \(x86\)\CodeBlocks\MinGW\include: No such file or directory
windres.exe: preprocessing failed.
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings

Я заметил, что MENOET ~ 1 - это какое-то сокращенное имя моего каталога проектов, и это не его фактическое имя. Не уверен, что это имеет к этому какое-то отношение, и я не могу изменить его.

edit2: Мне удалось это исправить, но я скорее не буду этого делать. То, что я сделал, это скопировать MingGW в C: \, а затем перейти к настройкам → компилятор и отладчик → каталоги поиска → компилятор ресурсов и установить этот путь к C:\MingGW\include. Это позволило устранить все ошибки, и сборка была успешной, хотя мне бы очень не хотелось иметь копии MingGW в моем корневом каталоге C: \. Есть ли способ исправить это, чтобы он работал с исходным путем? Я бы предположил, что это просто работает на пространствах в имени файла, но я не могу понять, где найти переменные сборки для вставки кавычек.

  • 0
    Я не могу не заметить это: \(x86\)\ - как в \ внутри скобок. Я только что проверил мои настройки для «Настройки-> Компилятор-> Поиск по каталогам-> Компилятор ресурсов», обнаружив, что они пустые. В то время как запись в «... directoryies-> Compiler» находится в C:\Program Files (x86)\CodeBlocks\MinGW\include . Вы всегда можете попробовать переустановить его. Я сделал это по причине, которую я давно забыл, в прошлом. РЕДАКТИРОВАТЬ: подразумевается, что (1) в вашем resource.rc нет включаемого файла (я бы ожидал, что resource.h имел что-то вроде #define MAINICON 100 ) (2) Checkout ResEdit - www.resedit.net
  • 0
    @enhzflep Я попытаюсь удалить каталог поиска из кодовых блоков и посмотрю, что произойдет, хотя у меня он работает и сейчас, хотя и не так, как хотелось бы. Спасибо за предложение.
Теги:
gcc
codeblocks

1 ответ

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

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

Чтобы исправить это, переместите любые каталоги в каталоге поиска компиляторов ресурсов в C: \, чтобы удалить пробелы из его имени или полностью удалить его ссылку из кода :: блоков.

Оба метода сработали. Перемещение каталога MingGW в C: \, а затем установление нового пути поиска к C:\MingGW\include устраняет эту ошибку, а также просто удаляет любую ссылку на эту папку в меню компилятора ресурсов.

Оба разрешили приложение успешно компилироваться.

Вы можете найти каталоги поиска компилятора ресурсов в

Settings → Compiler and debugger → Search directories → Resource compiler

Ещё вопросы

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