Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Qt(static) +sqlite + sqlcipher как подключить 
:(
    Опции темы
dream2work
Дата 5.4.2012, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.12.2009

Репутация: нет
Всего: нет



Здравствуйте.

QT 4.8 у меня собрано статически. Linux.
Собирал sqlcipher как пишет здесь http://wiki.crossplatform.ru/index.php/%D0...ipher_%D0%BA_Qt
только с поправкой на статическую сборку.

В конце сборки В каталоге /usr/local/Trolltech/Qt-4.8.0/plugins/sqldrivers у меня появились 'libqsqlcipher.a' 'libqsqlcipher.prl'
Насколько я понял libqsqlcipher.a - как раз предназначен для статической линковки.
Дальше в my_project.pro добавляю библиотеку

Код

QTPLUGIN += qsqlcipher
LIBS += -L/usr/local/Trolltech/Qt-4.8.0/plugins/sqldrivers/ -lqsqlcipher
INCLUDEPATH += /usr/local/Trolltech/Qt-4.8.0/plugins/sqldrivers
DEPENDPATH += /usr/local/Trolltech/Qt-4.8.0/plugins/sqldrivers
PRE_TARGETDEPS += /usr/local/Trolltech/Qt-4.8.0/plugins/sqldrivers/libqsqlcipher.a

В main.cpp добавляю
Код

#include <QPlugin>
QT_BEGIN_NAMESPACE
Q_IMPORT_PLUGIN(qsqlcipher)
QT_END_NAMESPACE

Теперь при билде падает ошЬІбка:
Код

/home/admin/Documents/my_project/src/main.o:-1: In function `global constructors keyed to _Z16myMessageHandler9QtMsgTypePKc':
/home/admin/Documents/my_project/src/main.cpp:-1: error: undefined reference to `qt_plugin_instance_qsqlcipher()'


Буду рад если кто-то это проходил и отпишется.
Спасибо.
PM MAIL   Вверх
dream2work
Дата 5.4.2012, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.12.2009

Репутация: нет
Всего: нет



nm libqsqlcipher.a | grep qt_plugin_instance_qsqlcipher -  ничего не находит 
а nm libqsqlcipher.a | grep qt_plugin_instance

Код

0000000000000180 T _Z26qt_plugin_instance_qsqlitev
0000000000000240 T _Z41qt_plugin_instance_QSQLCipherDriverPluginv
0000000000000000 b _ZGVZ26qt_plugin_instance_qsqlitevE9_instance
0000000000000010 b _ZGVZ41qt_plugin_instance_QSQLCipherDriverPluginvE9_instance
0000000000000008 b _ZZ26qt_plugin_instance_qsqlitevE9_instance
0000000000000018 b _ZZ41qt_plugin_instance_QSQLCipherDriverPluginvE9_instance


PM MAIL   Вверх
dream2work
Дата 6.4.2012, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.12.2009

Репутация: нет
Всего: нет



Собрал. Была в файле cmain.cpp ошибка.
Теперь другая проблема - база не шифруется.
Создаю базу и первым делом выполняю скрипт
Код

"pragma key = '12345';"

Но база не шифруется.
Кто-то сталкивался  с такой проблемой?
PM MAIL   Вверх
dream2work
Дата 20.4.2012, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.12.2009

Репутация: нет
Всего: нет



Уф. Разобрался. Тепер все работает. 
Кому интересно собираем все как пишет здесь http://wiki.crossplatform.ru/index.php/%D0...ipher_%D0%BA_Qt
но с некоторым отличием. У меня плагин sqlcipher находится в /home/administrator/Downloads/qt-everywhere-opensource-src-4.8.0/src/plugins/sqldrivers/sqlcipher/
1. Сборка sqlite командой
 
Код

./configure --prefix=/home/administrator/Downloads/qt-everywhere-opensource-src-4.8.0/src/plugins/sqldrivers/sqlcipher --disable-shared --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"

2. sqlcipher.pro - имеет следующий вид для статической сборки
Код

TARGET   = qsqlcipher
CONFIG  += static
HEADERS  = ../../../sql/drivers/sqlite/qsql_sqlite.h
SOURCES  = smain.cpp \
           ../../../sql/drivers/sqlite/qsql_sqlite.cpp

DEFINES     += SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_COMPLETE SQLITE_HAS_CODEC
LIBS        += -Llib -L/home/admin/Downloads/qt-everywhere-opensource-src-4.8.0/src/plugins/sqldrivers/sqlcipher/lib/ -lsqlite3
INCLUDEPATH += /home/admin/Downloads/qt-everywhere-opensource-src-4.8.0/src/plugins/sqldrivers/sqlcipher/include
QMAKE_RPATHDIR += lib
 include(../qsqldriverbase.pri)

4. В проекте где хотим использовать sqlcipher добавляем в *.pro файл
Код

QTPLUGIN += qsqlcipher
LIBS += -lcrypto

Теперь наш проект зависит только от библиотеки libcrypto. В убунту она находится в пакете - libssl.


Это сообщение отредактировал(а) dream2work - 20.4.2012, 09:54
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0987 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.