crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QSqlCipher; на другом пк: driver not loaded.
AntonH851
  опции профиля:
сообщение 13.9.2010, 9:30
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 20.2.2010
Из: Шебекино
Пользователь №: 1475

Спасибо сказали: 1 раз(а)




Репутация:   0  


Добрый день!
Возникла проблема переноса программы....
На моем пк, где я собирал sqlcipher, все работает. Хотя почему-то плагин загружается из каталога C:\Qt\2010.02\qt\plugins\sqldrivers\qsqlsipher4.dll, а не из каталога программы \sqldrivers\qsqlsipher4.dll.
А на другом выдает Driver not loaded.
Создал каталог C:\Qt\2010.02\qt\plugins\sqldrivers и скопировал туда драйвера, не помогло . Пробовал через FileMon смотреть, тоже ничего не дало.
Как сделать программу с SqlCipher переносимой?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 13.9.2010, 9:37
Сообщение #2


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


Практически весь раздел "Qt Разработка баз данных" состоит из обсуждения этой проблемы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AntonH851
  опции профиля:
сообщение 13.9.2010, 10:01
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 20.2.2010
Из: Шебекино
Пользователь №: 1475

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(molchanoviv @ 13.9.2010, 10:37) *
Практически весь раздел "Qt Разработка баз данных" состоит из обсуждения этой проблемы.

Дело в том, что как обычно копирование sqldrivers в каталог с программой не помогает....
Правда при сборке драйвера у меня не появился файл
libqsqlcipher.so
Цитата
В каталоге ~/qtsdk/qt/plugins/sqldrivers у Вас должен появиться файл libqsqlcipher.so

Может из-за этого проблема?

Сообщение отредактировал AntonH851 - 13.9.2010, 10:20
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 13.9.2010, 10:32
Сообщение #4


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(AntonH851)
Правда при сборке драйвера у меня не появился файл
libqsqlcipher.so

Ты же под Windows компилируешь. Поэтому вместо .so создается .dll
Цитата(AntonH851)
C:\Qt\2010.02\qt\plugins\sqldrivers\qsqlsipher4.dll


OpenSSL не забыл на другом ПК установить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AntonH851
  опции профиля:
сообщение 13.9.2010, 10:44
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 20.2.2010
Из: Шебекино
Пользователь №: 1475

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(igor_bogomolov @ 13.9.2010, 11:32) *
OpenSSL не забыл на другом ПК установить?


Не забыл, это не помогло.
Т.е. для корректной работы надо:
1. создать в папке с программой папку sqldrivers и в нее положить qsqlcipher4.dll
2. установить OpenSSL
Это все?



Сообщение отредактировал AntonH851 - 13.9.2010, 11:00
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.9.2010, 10:52
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AntonH851 @ 13.9.2010, 14:44) *
Это все?
нужно ещё чтобы программа была в релизе, либо программа в отладочном варианте и dll'ку брать с буквой d на конце
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 13.9.2010, 10:59
Сообщение #7


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(AntonH851)
Это все?
Если папка с программой = папке где располагается exe файл запуска программы, то да, всё делаешь правильно.

Тем не менее видимо какие то зависимости не удовлетворены. Не знаю что и посоветовать. У меня не будет возможность сегодня проверить.
В Total Comander есть замечательная утилита показывающая зависимости dll и пути их поиска. Вызывается по F3 на dll'ке. Попробуй с ее помощью посмотреть что хочет qsqlcipher4.dll и где он это пытается найти

Ага, вот и Юра правильно подсказывает. Библиотека и программа должны быть собраны в одном режиме, либо debug, либо release
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AntonH851
  опции профиля:
сообщение 13.9.2010, 11:01
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 20.2.2010
Из: Шебекино
Пользователь №: 1475

Спасибо сказали: 1 раз(а)




Репутация:   0  


Оказывается не работало из-за отсутствия Microsoft Visual C++ 2008 Redistributable
Попробовал переустановить OpenSSL и выдало сообщение что не хватает этого компонента, первый раз не заметил почему-то его....
Теперь все работает.

Сообщение отредактировал AntonH851 - 13.9.2010, 11:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 13.9.2010, 11:03
Сообщение #9


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


AntonH851, в пакете студии есть инструмент depends.exe . Позволяет посмотреть, какие библиотеки хочет экзешник, какие он нашёл, какие нет (и где нашёл - путь можно посмотреть)

Я при помощи этого тула заставил Qt'шную программу заработать у заказчика ))) Скопировал все релизные варианты DLL в папку с экзешником.

Сообщение отредактировал Алексей1153 - 13.9.2010, 11:05
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AntonH851
  опции профиля:
сообщение 13.9.2010, 11:08
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 20.2.2010
Из: Шебекино
Пользователь №: 1475

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 13.9.2010, 12:03) *
AntonH851, в пакете студии есть инструмент depends.exe . Позволяет посмотреть, какие библиотеки хочет экзешник, какие он нашёл, какие нет (и где нашёл - путь можно посмореть)


Depends.exe показал что нет msjava.dll,
в ручную установил, не помогло...
может эта dll как раз и была из Microsoft Visual C++ 2008 Redistributable
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 14:41