Я пытаюсь добавить файл ресурсов, чтобы включить значок для моего приложения формы 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: \. Есть ли способ исправить это, чтобы он работал с исходным путем? Я бы предположил, что это просто работает на пространствах в имени файла, но я не могу понять, где найти переменные сборки для вставки кавычек.
В соответствии с моими выводами и настройками Enhzflep я исправил проблему. Проблема вызвана пробелами и символами, такими как скобки, находящимися в имени пути для каталогов поиска для компилятора ресурсов.
Чтобы исправить это, переместите любые каталоги в каталоге поиска компиляторов ресурсов в C: \, чтобы удалить пробелы из его имени или полностью удалить его ссылку из кода :: блоков.
Оба метода сработали. Перемещение каталога MingGW в C: \, а затем установление нового пути поиска к C:\MingGW\include устраняет эту ошибку, а также просто удаляет любую ссылку на эту папку в меню компилятора ресурсов.
Оба разрешили приложение успешно компилироваться.
Вы можете найти каталоги поиска компилятора ресурсов в
Settings → Compiler and debugger → Search directories → Resource compiler
\(x86\)\
- как в\
внутри скобок. Я только что проверил мои настройки для «Настройки-> Компилятор-> Поиск по каталогам-> Компилятор ресурсов», обнаружив, что они пустые. В то время как запись в «... directoryies-> Compiler» находится вC:\Program Files (x86)\CodeBlocks\MinGW\include
. Вы всегда можете попробовать переустановить его. Я сделал это по причине, которую я давно забыл, в прошлом. РЕДАКТИРОВАТЬ: подразумевается, что (1) в вашем resource.rc нет включаемого файла (я бы ожидал, что resource.h имел что-то вроде#define MAINICON 100
) (2) Checkout ResEdit - www.resedit.net