cmake + msvc + rc, добавление ресурсов к dll |
Здравствуйте, гость ( Вход | Регистрация )
cmake + msvc + rc, добавление ресурсов к dll |
igor_bogomolov |
5.1.2011, 1:45
Сообщение
#1
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Имею microsoft visual c++ 2010 express. Никак не могу прикрутить ресурсы к dll.
Делаю так: 1. Получил кое как шаблон файла ресурса при помощи IDE, немного модифицировал его win_resources.rc
2. Добавил правило для сборки в cmake
3. Компилирую Dll компилируется, ресурсы тоже, но реально в dll никакой информации не добавляется. Почему? express версия вообще позволяет ресурсы к библиотеке добавлять? |
|
|
Litkevich Yuriy |
5.1.2011, 2:50
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
igor_bogomolov |
5.1.2011, 11:11
Сообщение
#3
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
ну а ты без CMake-а попробуй, самой студией (экспресс). Будут ресурсы вкомпиливаться или нет? Пытался, конечно, но не получилось. Сама студия (express) имеет ограничения в работе с ресурсами, я не нашел нужного пункта в меню (делал по докам с msdn) для создания файла ресурсов. Но если создать новый проект, студия его создаст (имею в виду файл ресурсов), но редактирование его не доступно. Я нашел примеры файлов ресурсов в инете, пытался их подсунуть. Самое интересное что они компилируются, я это вижу, но к dll никакая информация не добавляется |
|
|
DEADHUNT |
5.1.2011, 13:47
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
это cmake ограничение, он не умеет напрямую ресурсы добавлять(помню по MinGW)
вот такой workaround, вначале объектник из ресурса создаётся, а он потом линкуется. тебе надо res сделать. |
|
|
igor_bogomolov |
5.1.2011, 14:15
Сообщение
#5
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
DEADHUNT, так ведь windres это утилита mingw. Именно так я и делаю когда использую этот компилятор. А сейчас меня компилятор msvc интересует. В нем есть утилита RC, для компиляции ресурсов. Он на самом деле запускается, и некий скомпилированный файл ресурсов (с расширением .rc.res) я получаю. Но эта информация не добавляется к dll.
|
|
|
DEADHUNT |
5.1.2011, 15:14
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
попробуй в add_library напрямую res файл указать
|
|
|
igor_bogomolov |
5.1.2011, 16:10
Сообщение
#7
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Так этот файл результат компиляции, изначально его нет. Поэтому cmake выдаёт ошибку, что такого файла не существует.
Цитата Cannot find source file "win_resources.rc.res". Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx Как его правильно добавить? |
|
|
DEADHUNT |
5.1.2011, 16:12
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
пропиши правило аналогичное
только для rc, а потом добавляй полученный res. |
|
|
igor_bogomolov |
5.1.2011, 17:06
Сообщение
#9
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Сделал так
Результат тот же. Всё компилируется но дополнительной информации в dll нет. Может у меня файл ресурсов не правильный. Раскрывающийся текст
Я этот пример тупо в инете нарыл. Что например значит BLOCK "040904b0"? Что это за цифры? Как должен выглядеть файл ресурсов? Мне на самом деле нужно добавить информацию о MIMEType. |
|
|
igor_bogomolov |
5.1.2011, 18:26
Сообщение
#10
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Такая вот новая информация. Если я генерирую файл проекта для студии
открываю проект и компилирую уже с студии, то все отрабатывает правильно. Ресурсы добавляются.Если я делаю так и компилирую в консоли (этот вариант мне больше подходит), ресурсы к dll не добавляются. Чего же блин не хватает?
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 13:46 |