Qt плагины в Linux/Windows, различие в подходах |
Здравствуйте, гость ( Вход | Регистрация )
Qt плагины в Linux/Windows, различие в подходах |
Litkevich Yuriy |
30.11.2012, 20:12
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Алексей1153 |
30.11.2012, 20:16
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
в линуксе тоже dll ? Мне помнится, там именно эта шняга с расширением a. Так и считаю до сих пор ) Очень редко сталкивался с линуксом
|
|
|
Litkevich Yuriy |
30.11.2012, 20:20
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
в линуксе тоже dll ? Мне помнится, там именно эта шняга с расширением a. Так и считаю до сих пор ) там so-файлы, т.е. libqjpeg4.soоднако там их подкладывать к приложению, по моему, бесполезно. (В этом месте я про Линух плохо знаю) Линух в отличии от Винды, не ищет файлы в каталоге с приложением, у него для этих целей специальная переменная окружения есть. А вот на счёт плагинов Qt я не вкурсе, может ядро Qt (QtCore) и ищет. |
|
|
__ilya__ |
1.12.2012, 9:06
Сообщение
#4
|
Студент Группа: Участник Сообщений: 57 Регистрация: 19.1.2012 Пользователь №: 3143 Спасибо сказали: 0 раз(а) Репутация: 0 |
Алексей1153,
В LINUX, сколько программ писал, на Qt, работало без dll. |
|
|
Iron Bug |
3.12.2012, 8:25
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
однако там их подкладывать к приложению, по моему, бесполезно. не распространяй мракобесие. в линюксе есть пути поиска библиотек. при линковке можно указать флаг поиска (-Wl,-R[path]) и софтина будет искать сначала там, а потом уже по стандартным системным путям. на самом деле, даже у готовой софтины можно эти пути прописать в бинарнике, но это уже из разряда хакерства. такой финт ушами используется при сборке ядра с нуля, на голой машине. а что касается so-файлов, то конкретно для них можно ещё использовать переопределение LD_PRELOAD. Сообщение отредактировал Iron Bug - 3.12.2012, 8:33 |
|
|
Litkevich Yuriy |
3.12.2012, 17:31
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
не распространяй мракобесие. я тут имел ввиду плагины Qt. дело в том что в библиотеку QtCore (на виндовозе точно!) жёстко зашиты пути поиска плагинов, а именно в каталог сборки/установки самой библиотеки, а там под каталог plugins/имя_плагина, если там нет, то ищется в подкаталоге имя_плагина самого приложения.Как это в линуже реализуется с Qt плагинами, я не в курсе. П.С. при установке Qt на виндовоз из дистрибутива, библиотека QtCore.dll автоматически патчится под текущие пути |
|
|
Iron Bug |
4.12.2012, 7:14
Сообщение
#7
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
я так понимаю, что есть два типа плагинов: плагины для самого Qt и плагины вообще. так вот плагин вообще - это, на самом деле, просто библиотека. и поиск её система будет осуществлять там, где у неё прописано, если я правильно понимаю принцип построения плагинов.
|
|
|
Litkevich Yuriy |
4.12.2012, 11:28
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
что есть два типа плагинов: плагины для самого Qt и плагины вообще. тут пожалуй следует такую оговорку сделать.Есть механизм плагинов Qt, это библиотеки, но в которые вкомпиливается некий дополнительный код, позволяющий динамически линковать плагин, если он найден (т.е. без специальных манипуляций со стороны прикладного программиста). Но ещё есть и плагины для самой Qt - тоже что и выше, но с дополнительными правилами (упомянутые в предыдущих постах пути). Вот в справке про это написано |
|
|
kuzulis |
4.12.2012, 12:58
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Цитата дело в том что в библиотеку QtCore (на виндовозе точно!) жёстко зашиты пути поиска плагинов Да, есть такое дело. Прописаны пути в qmake, qdoc и т.п. Когда мы устанавливаем готовые QtSDK или библиотеки при помощи инсталлятора (Qt Installer Framework), то он патчит эти самые бинарики и т.п. Я сделал небольшую простенькую консольную утилиту чтобы тоже пропатчивать бинарики. Она вроде работает... Может кому пригодится... |
|
|
Iron Bug |
4.12.2012, 13:04
Сообщение
#10
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Когда мы устанавливаем готовые QtSDK или библиотеки при помощи инсталлятора (Qt Installer Framework), то он патчит эти самые бинарики и т.п. как всё запущено, однако! а ведь простая библиотека решает все потребности плагинов... не, не буду я пользовать Qt. что-то они всё дальше в дебри лезут. если уже до патчей бинарников дошло, что-то там изначально не так. идеология кривая. |
|
|
Текстовая версия | Сейчас: 30.11.2024, 3:21 |