Russian Qt Forum
Ноябрь 23, 2024, 03:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: статическая компиляция QT ???  (Прочитано 13952 раз)
L.Marvell
Гость
« Ответ #15 : Июль 25, 2006, 12:57 »

Цитата: "noosooth"
Цитата: "L.Marvell"
Т.е. как мне представлялось кт должна была слинковаться с libmysql и libpq ну и соотв. приложение не должно требовать этих дллек. Или я все неправильно понял.


Ничего не смыслю в этих драйверах к базам, но рискну предположить, что статически собрав Qt с ключами qt-sql... , Вы всего лишь получили отдельные статические библиотеки где нибудь в /Qt/4.x.x/plugins/...
И насколько я понимаю, линковку с этими библиотеками должно осуществлять Ваше приложение, а не Qt.
Плюс в приложении Вы должны использовать макрос Q_IMPORT_PLUGIN.

Возможно я ошибаюсь.

Макрос не использовал, приложение собранное с помощью стат. кт работало на ура, если положить рядом с бинарником libmysql.dll ну или прописать в системе пути к этой либе.

Меня несколько просветили на qtcentre: "with -plugin-sql-mysql you will have to deliver the plugin and libmysql.dll, and with -qt-sql-mysql only libmysql.dll (because the plugin will be "hidden" inside Qt)."

добавлено спустя 7 минут:

 Осталось понять зачем приложение просит еще и libpq.dll хотя эта либа в нем и не используется. Хотя понять я вроде понял. Сборка приложения идет еще и с теми ключами, с которыми собиралась кт. Проскакивают строчки -lmysql -lpq -L C:\mysql\lib\opt -L C:\pgsql\lib. Я так понимаю они берутся из qmake.conf или нет? Вопрос только как от этого избавиться?
Неужели придется пересобрать кт без -qt-sql-psql?
t-sql-psql?

добавлено спустя 16 минут:

 Мдя... видимо таки придется пересобирать кт без -qt-sql-psql Грустный
Записан
noosooth
Гость
« Ответ #16 : Июль 25, 2006, 13:29 »

Цитата: "L.Marvell"

Макрос не использовал, приложение собранное с помощью стат. кт работало на ура, если положить рядом с бинарником libmysql.dll ну или прописать в системе пути к этой либе.

Меня несколько просветили на qtcentre: "with -plugin-sql-mysql you will have to deliver the plugin and libmysql.dll, and with -qt-sql-mysql only libmysql.dll (because the plugin will be "hidden" inside Qt)."

 Осталось понять зачем приложение просит еще и libpq.dll хотя эта либа в нем и не используется. Хотя понять я вроде понял. Сборка приложения идет еще и с теми ключами, с которыми собиралась кт. Проскакивают строчки -lmysql -lpq -L C:\mysql\lib\opt -L C:\pgsql\lib. Я так понимаю они берутся из qmake.conf или нет? Вопрос только как от этого избавиться?

Неужели придется пересобрать кт без -qt-sql-psql?


Я тут опять нагло влезу, думаю меня поправят те кто уже с этим разобрался.

Получается, что собрав Qt статически с ключами -qt-sql-psql и -qt-sql-mysql и исходя из того что товарищи с qtcentre правы  насчет  "the plugin will be "hidden" inside Qt" оба эти драйвера будут статически подлинкованы в билиотеку Qt'а, но потянут за собой  libpq.dll и  libmysql.dll. И видимо избавиться от libpq.dll в данном случае действительно можно только пересобрав Qt без ключа -qt-sql-psql.

Очень интересно ещё вот что:
А что будет, если собрать Qt статически но только с ключами -plugin-sql-psql и -plugin-sql-mysql?
Получатся ли в этом случае оба этих драйвера в виде отдельных статических библиотек, которые можно использовать как static plugins?

Ведь если получатся, то слинковав приложение только с нужным статическим плагином Вы потянете только необходимую ему dll-ку?

Или я опять наврал?
Записан
L.Marvell
Гость
« Ответ #17 : Июль 25, 2006, 13:49 »

Сам еще не проверял, но говорят, что именно так оно и есть.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 21.