Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] сборка qmake static sqlite с поддержкой fts


Автор: laren 18.10.2011, 20:47
подскажите пожалуйста, что я делаю не так или не делаю вообще. И как исправить ситуацию? 

Конечная цель: собрать static release проект работающий с базой sqlite, и использующий fts3. 
Платформа: Windows 7, QtCreator 4.7.4

1) Скачал исходный код qt 4.7.4, исходные коды sqlite (amalgamon)
2) Скопировал файлы sqlite в src\3rdparty\sqlite
3) Дописал в sqlite.pro (src\plugins\sqldrivers\sqlite\) DEFINES += SQLITE_ENABLE_FTS3 SQLITE_ENABLE_FTS3_PARENTHESIS
4) прописал в qmake.conf (mkspecs\win32-g++\) в строке QMAKE_LFLAGS = -static -release -enable-stdcall-fixup -Wl,-auto-import -Wl,-enable-runtime-pseudo-reloc
5) Сконфигурировал QMAKESPEC на win32-g++
6) configure -static -release -no-exceptions -qt-sql-sqlite
7) mingw32-make sub-src
8) в QtCreator в настройке указываю на новый собранный qmake
9) компилирую в релизе, используя этот qmake, получаю 9МБ исполняемый файл, который запускается а с базой на fts работать не хочет. Причем с обычной базой sqlite без fts работает, значит драйвер sqlite включается а вот fts почему то нет.

Подскажите кто может сталкивался с такой проблемой. Заранее спасибо.

Автор: laren 22.10.2011, 18:21
Решил проблему. 

Открыл файл sqlite.pro в QtCreatore и пересобрал его. В папке plugins\sqlite появились файлы qsqlite.prl и libqsqlite.a. Теперь в файле проекта при сборке в релизе (в отладке при сборке другим qmake естественно не заработает) дописал QTPLUGIN +=qsqlite и в main.cpp прописал Q_IMPORT_PLUGIN(qsqlite) после чего собранное приложение успешно начало работать с sqlite базой с использованием fts.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)