Ни как не могу слинковать. |
Здравствуйте, гость ( Вход | Регистрация )
Ни как не могу слинковать. |
Гость_Гость_heiheshang_*_* |
7.11.2009, 16:36
Сообщение
#1
|
Гости |
Проблема в следующем, ни как не могу слинковать код. В qtcreator есть библиотека libDuiEditor. Я ее подключаю к своему проекту. Код компилируется, но линковщик в упор не хочет видеть этот модуль.
Может я чего-то не понимаю ?
Вот код самого модуля
|
|
|
SABROG |
7.11.2009, 16:59
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Покажи .pro файл.
|
|
|
Гость_Гость_heiheshang_*_* |
7.11.2009, 17:08
Сообщение
#3
|
Гости |
|
|
|
frg10 |
8.11.2009, 4:06
Сообщение
#4
|
Студент Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: 2 |
Может я чего-то не понимаю ? DuiEditor::Internal::DuiEditorPlugin *plugin =new DuiEditor::Internal::DuiEditorPlugin(); Вроде инстансы плагинов не создаются вручную. Нужно использовать QPluginLoader. Вобщем смотри ассистант. Еще можно попробовать добавить к описанию класса Q_DECL_EXPORT/IMPORT чтобы сделать его интерфейс видимым снаружи. Но при этом нужно будет пересобрать либу. |
|
|
Гость_Гость_heiheshang_*_* |
8.11.2009, 15:19
Сообщение
#5
|
Гости |
Может я чего-то не понимаю ? DuiEditor::Internal::DuiEditorPlugin *plugin =new DuiEditor::Internal::DuiEditorPlugin(); Вроде инстансы плагинов не создаются вручную. Нужно использовать QPluginLoader. Вобщем смотри ассистант. Еще можно попробовать добавить к описанию класса Q_DECL_EXPORT/IMPORT чтобы сделать его интерфейс видимым снаружи. Но при этом нужно будет пересобрать либу. Да руками не создаются, делаю так
Получаем ошибку линковки
|
|
|
frg10 |
8.11.2009, 17:40
Сообщение
#6
|
Студент Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: 2 |
ИМХО без правки исходников не обойтись. Дело в том, что если вы хотите использовать какой-то класс определенный в динамической библиотеке, этот класс должен из нее экспортироваться. Т.е. класс должен быть объявлен так:
Подробности в Creating Shared Libraries Ну и пересобрать нужно будет этот плагин. И линковать нужно будет статически через -lDuiEditor. А вообще, зачем вам доступ к классу DuiEditorPlugin? Если вам нужно его инициализировать, то нужно кастить его к ExtensionSystem::IPlugin. А доступ ко всем объектам, которые он предоставляет, осуществляется через ExtensionSystem::PluginManger. |
|
|
Гость_Гость_heiheshang_*_* |
8.11.2009, 19:11
Сообщение
#7
|
Гости |
ИМХО без правки исходников не обойтись. Дело в том, что если вы хотите использовать какой-то класс определенный в динамической библиотеке, этот класс должен из нее экспортироваться. Т.е. класс должен быть объявлен так:
Подробности в Creating Shared Libraries Ну и пересобрать нужно будет этот плагин. И линковать нужно будет статически через -lDuiEditor. А вообще, зачем вам доступ к классу DuiEditorPlugin? Если вам нужно его инициализировать, то нужно кастить его к ExtensionSystem::IPlugin. А доступ ко всем объектам, которые он предоставляет, осуществляется через ExtensionSystem::PluginManger. Может сам класс мне и не нужен, главное получить его функционал,если подскажите как им воспользоваться буду благодарен. |
|
|
frg10 |
8.11.2009, 23:11
Сообщение
#8
|
Студент Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: 2 |
Может сам класс мне и не нужен, главное получить его функционал,если подскажите как им воспользоваться буду благодарен. Я могу вам посоветовать подробнее разобраться с архитектурой QtCreator. Мне очень помог документ Writing Qt Creator Plugin. Как понятно из названия, там описывается как писать собственные плагины, ну и параллельно разбирается архитектура. А дальше нужно просто брать исходники самого креатора и разбираться. Кстати, всем советую, потому что сделано все очень красиво. P.S. Еще могу посоветовать сгенерировать документацию по QtCreator Doxygen-ом. Очень помогает. |
|
|
Litkevich Yuriy |
9.11.2009, 4:17
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
heiheshang, что-то я в Git-хранилище этого DuiEditor не вижу. Может прибили уже?
|
|
|
Гость_Гость_heiheshang_*_* |
9.11.2009, 7:46
Сообщение
#10
|
Гости |
Может сам класс мне и не нужен, главное получить его функционал,если подскажите как им воспользоваться буду благодарен. Я могу вам посоветовать подробнее разобраться с архитектурой QtCreator. Мне очень помог документ Writing Qt Creator Plugin. Как понятно из названия, там описывается как писать собственные плагины, ну и параллельно разбирается архитектура. А дальше нужно просто брать исходники самого креатора и разбираться. Кстати, всем советую, потому что сделано все очень красиво. P.S. Еще могу посоветовать сгенерировать документацию по QtCreator Doxygen-ом. Очень помогает. Просмотр ничего не дал, так и осталось неясным как методы вызывать плагина. |
|
|
Текстовая версия | Сейчас: 28.3.2024, 17:52 |