crossplatform.ru

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

> Помогите с переносом приложения...
defnull
  опции профиля:
сообщение 24.6.2009, 13:00
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

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




Репутация:   1  


Помогите пожалуйста с переносом приложения, совсем я отчаился сделать это своими силами, да и сроки горят настолько что там успеть бы хоть написать систему.. бьюсь уже который день и толку пока не особо. Вообщем есть WinXp виртуалка на которой стоит VS 2008 + Qt 4.4.3 + POstgresql 8.3.5 Компилировал если мне память не изменяет по дефолту (динамика как я понимаю) + плагин для работы с postgres. Приложение на этой виртуалке нормально работает с базой, тоесть никаких проблем с работой приложения на машине где разрабатываю не возникало. (Плагин подгружается динамически если что а НЕ статически через QIMPORT или как там оно пишется точно..)

Теперь пробую перенести на машину с голой XP. Что я туда кидаю:
admin.exe - собственно приложение

// библиотеки от которых зависит приложения по отчёту програмки Dependency
QtSqld4.dll
QtCored4.dll
QtGuid4.dll

//папки с плагинами
sqldrivers
imageformats

// библиотеки компилятора папки
Microsoft.VC90.CRT
Microsoft.VC90.DebugCRT

// библиотеки postgres
comerr32.dll  
k5sprt32.dll
libiconv-2.dll  
libxml2.dll  
pgaevent.dll
gssapi32.dll  
krb5_32.dll  
libintl-8.dll  
libxslt.dll  
ssleay32.dll
iconv.dll    
libeay32.dll  
libpq.dll      
msvcr71.dll  
zlib1.dll


Почему так много библиотек расскажу чуть ниже.
Вообщем копируем это список на чистую XP, приложение загружается НО
1) при попытке залогиниться к базе пишет Driver not loaded
2) не грузиться иконка приложения

Что я попытался сделать:
1) всевозможные вариации с sqldrivers и imageformats (клал и в plugins и просто в папку с приложением и прописывал path и добавлял чере addLibPath или как там оно)
2) пробовал блокировать доступ к Qt и POstgresql на машине где разрабатываю чтобы выяснить какие ещё библиотеки необходимы приложениею... в результате остановился на
приведённом выше списке, хотя огромное количество библиотек postgresql без которых оно отказывается работать с драйвером очень удивляет
3) пытался выяснить через processexplorer необходимые dll и поставлять их на голую xp вместе с приложением... тоже труба=(
4) убивал ветки реестра вот кстати что пишет в созданных ветка в значение параметра например qsqlpsql4d.dll:
40403
1
Windows msvc debug full-config
2009-04-11T02:11:03

НО самое интересное что при всё при этом в реестре при данном наборе драйвера появляются (у троллей написано про кеширование, так вот они там показываются и обе папки определяются)
НО почему-то приложение отказывается их загружать =((((

Вообщем я уже почти совсем отчаился... буду очень признателен если вы поможете мне распутать это клубок!! Документрацию на предмет работы с плагинами читал, форумы многие излазил но толку пока нету=((( Смущает меня так же что не грузиться и иконка приложения... тоесть не грузятся плагины в принципе =(((

Сообщение отредактировал defnull - 24.6.2009, 13:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 24.6.2009, 13:33
Сообщение #2


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

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Попробуй dependency walker. Он скажет какие библиотеки пытаются загрузиться не статически, а динамически. Будет писать что-то типа не удалось найти библиотеку, но на самом может всё находится, но не загружаться из-за ошибок возвращенных изнутри .dll

Скомпилируй программу с консолью как release:

.pro файл
CONFIG *= console


Запусти консоль (cmd), выполни команду:

se QT_DEBUG_PLUGINS=1


Запусти свою программу из консоли и смотри какие ошибки будут писаться. Если есть подобное:

"The plugin 'плагин.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
not a plugin


Значит у тебя программа в debug режиме собрана и идет попытка использовать плагины собранные в релизе.

Попробуй поместить в ту же папку где программа файлик qt.conf с содержимым:

[Paths]
Plugins=plugin


Соответственно должна быть папка plugin, а в ней папки:
sqldrivers
imageformats
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 27.12.2024, 22:50