Помогите с переносом приложения... |
Здравствуйте, гость ( Вход | Регистрация )
Помогите с переносом приложения... |
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. Что я туда кидаю:
Почему так много библиотек расскажу чуть ниже. Вообщем копируем это список на чистую 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 файл
Запусти консоль (cmd), выполни команду:
Запусти свою программу из консоли и смотри какие ошибки будут писаться. Если есть подобное:
Значит у тебя программа в debug режиме собрана и идет попытка использовать плагины собранные в релизе. Попробуй поместить в ту же папку где программа файлик qt.conf с содержимым:
Соответственно должна быть папка plugin, а в ней папки: sqldrivers imageformats |
|
|
Litkevich Yuriy |
24.6.2009, 13:39
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Вообщем копируем это список на чистую XP, приложение загружается НО Всё сделал, что здесь написано?
1) при попытке залогиниться к базе пишет Driver not loaded 2) не грузиться иконка приложения |
|
|
defnull |
24.6.2009, 18:26
Сообщение
#4
|
Студент Группа: Участник Сообщений: 49 Регистрация: 1.5.2008 Пользователь №: 165 Спасибо сказали: 0 раз(а) Репутация: 1 |
Dependency Walker вообще указывает только эти библиотеки:
QTCORED4.DLL QTGUID4.DLL QTSQLD4.DLL MSVCR90D.DLL KERNEL32.DLL Испортировал проект в pro файл + добавил console.. из qt консоли выполнил qmake -project nmake Попробовал выставить set QT_DEBUG_PLUGINS=1 Посыпались ошибки вида Plugin uses incompatible Qt library expected build key "Windows msvc debug full-config", got "Windows msvc release full-config" Лог прилагаю: Раскрывающийся текст QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qgif4.dll" In C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qgif4.dll: Plugin uses incompatible Qt library expected build key "Windows msvc debug full-config", got "Windows msvc release full-config" "The plugin 'C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qgif4.dll' uses incompatible Qt library. Expected build key "Windows msvc debug full-config", got "Windows msvc release full-config"" not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qgifd4.dll" keys ("gif") QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qico4.dll" In C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qico4.dll: Plugin uses incompatible Qt library expected build key "Windows msvc debug full-config", got "Windows msvc release full-config" "The plugin 'C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qico4.dll' uses incompatible Qt library. Expected build key "Windows msvc debug full-config", got "Windows msvc release full-config"" not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qicod4.dll" keys ("ico") QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qjpeg4.dll" In C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qjpeg4.dll: Plugin uses incompatible Qt library expected build key "Windows msvc debug full-config", got "Windows msvc release full-config" "The plugin 'C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qjpeg4.dll' uses incompatible Qt library. Expected build key "Windows msvc debug full-config", got "Windows msvc release full-config"" not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qjpegd4.dll" keys ("jpeg", "jpg") QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qmng4.dll" In C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qmng4.dll: Plugin uses incompatible Qt library expected build key "Windows msvc debug full-config", got "Windows msvc release full-config" "The plugin 'C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qmng4.dll' uses incompatible Qt library. Expected build key "Windows msvc debug full-config", got "Windows msvc release full-config"" not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qmngd4.dll" keys ("mng") QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qsvg4.dll" In C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qsvg4.dll: Plugin uses incompatible Qt library expected build key "Windows msvc debug full-config", got "Windows msvc release full-config" "The plugin 'C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qsvg4.dll' uses incompatible Qt library. Expected build key "Windows msvc debug full-config", got "Windows msvc release full-config"" not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qsvgd4.dll" keys ("svg") QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qtiff4.dll" In C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qtiff4.dll: Plugin uses incompatible Qt library expected build key "Windows msvc debug full-config", got "Windows msvc release full-config" "The plugin 'C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qtiff4.dll' uses incompatible Qt library. Expected build key "Windows msvc debug full-config", got "Windows msvc release full-config"" not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/imageformats/qtiffd4.dll" keys ("tiff", "tif") QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/sqldrivers/qsqlpsql4.dll" In C:/Рабочий проект/Личные ветки/admin/Debug/sqldrivers/qsqlpsql4.dll: Plugin uses incompatible Qt library expected build key "Windows msvc debug full-config", got "Windows msvc release full-config" "The plugin 'C:/Рабочий проект/Личные ветки/admin/Debug/sqldrivers/qsqlpsql4.dll' uses incompatible Qt library. Expected build key "Windows msvc debug full-config", got "Windows msvc release full-config"" not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Рабочий проект/Личные ветки/admin/Debug/sqldrivers/qsqlpsqld4.dll" keys ("QPSQL7", "QPSQL") QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work. На рабочей машине добавил в папку плагинов, необходимые дллки и как вы можете судить по логу программу запустилась и подхватила драйвер, но оч мне не нравятся эти надписи, особенно ""The plugin 'C:/Рабочий проект/Личные ветки/admin/Debug/sqldrivers/qsqlpsql4.dll' uses incompatible Qt library. Expected build key "Windows msvc debug full-config", got "Windows msvc release full-config"" not a plugin " Сейчас попробую посмотреть как реагирует голая xp.. правда подозреваю что не заработает Цитата Всё сделал, что здесь написано? Вроде бы да..Не заработало.. собственно вывод почти такой же как и на dev машине. правда особо ничего и не менял.. с чего ему работать... На чистой машине: Раскрывающийся текст Кусок лога: QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/qsqlpsql4.dll" In C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/qsqlpsql4.dll: Plugin uses incompatible Qt library expected build key "Windows msvc debug full-config", got "Windows msvc release full-config" "The plugin 'C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/qsqlpsql4.dll' uses incompatible Qt library. Expected build key "Windows msvc debug full-config", got "Windows msvc release full-config"" not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/qsqlpsqld4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/qsqlpsqld4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QSqlDatabase: QPSQL driver not loaded QSqlDatabase: available drivers: QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work. Сообщение отредактировал defnull - 24.6.2009, 19:08 |
|
|
defnull |
24.6.2009, 20:05
Сообщение
#5
|
Студент Группа: Участник Сообщений: 49 Регистрация: 1.5.2008 Пользователь №: 165 Спасибо сказали: 0 раз(а) Репутация: 1 |
Может быть есть каик-=нибудь идеи ещё? меня ещё смушает что не грузятся иконки приложения =(( правда это наверное из за опять же плагинов..
|
|
|
SABROG |
24.6.2009, 20:44
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Судя по названию папочки собрана у тебя программа в debug режиме. Почему ты тогда поставляешь плагины еще и для release версий? Ты уж определись, а то они тоже пытаются загрузится.
Эта ошибка тоже заставляет задуматься
Может надо обновить пакет redistributable? http://www.microsoft.com/downloads/info.as...isplaylang%3den и http://www.microsoft.com/downloads/info.as...isplaylang%3den Сообщение отредактировал SABROG - 24.6.2009, 21:03 |
|
|
defnull |
24.6.2009, 21:01
Сообщение
#7
|
Студент Группа: Участник Сообщений: 49 Регистрация: 1.5.2008 Пользователь №: 165 Спасибо сказали: 0 раз(а) Репутация: 1 |
Не совсем понял где именно обновить. На виртуалке где собственно происходит компиляция?
Сообщение отредактировал defnull - 24.6.2009, 21:07 |
|
|
SABROG |
24.6.2009, 21:07
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Попробуй поставить пакеты на которые я ссылки дал выше, не забудь почистить реестр перед следующей попыткой запустить.
|
|
|
defnull |
24.6.2009, 21:40
Сообщение
#9
|
Студент Группа: Участник Сообщений: 49 Регистрация: 1.5.2008 Пользователь №: 165 Спасибо сказали: 0 раз(а) Репутация: 1 |
Попробуй поставить пакеты на которые я ссылки дал выше, не забудь почистить реестр перед следующей попыткой запустить. Раскрывающийся текст QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qgifd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qgifd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qicod4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qicod4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qjpegd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qjpegd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qmngd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qmngd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qsvgd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qsvgd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qtiffd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/imageformats/qtiffd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qgifd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qgifd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qicod4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qicod4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qjpegd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qjpegd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qmngd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qmngd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qsvgd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qsvgd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qtiffd4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/imageformats/qtiffd4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/sqldrivers/msvcp90d.dll" "The file 'C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/sqldrivers/msvcp90d.dll' is not a valid Qt plugin." not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/sqldrivers/msvcr90d.dll" "The file 'C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/sqldrivers/msvcr90d.dll' is not a valid Qt plugin." not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/sqldrivers/qsqlpsqld4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/plugins/sqldrivers/qsqlpsqld4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/msvcp90d.dll" "The file 'C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/msvcp90d.dll' is not a valid Qt plugin." not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/msvcr90d.dll" "The file 'C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/msvcr90d.dll' is not a valid Qt plugin." not a plugin QFactoryLoader::QFactoryLoader() looking at "C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/qsqlpsqld4.dll" "QLibrary::load_sys: Cannot load C:/Documents and Settings/Администратор/Рабочий стол/Debug/sqldrivers/qsqlpsqld4.dll (Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.)" could not load QSqlDatabase: QPSQL driver not loaded QSqlDatabase: available drivers: QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work. Всё тоже самое.. =(( Попробую поиграться ещё с папками plugin и их определения путей=( Если есть возможность посмотреть исходники был бы оч признателен.. хотя сомневаюсь что дело в них. |
|
|
Litkevich Yuriy |
24.6.2009, 22:53
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
defnull, для начала сделай класические пути, на целевой машине. Т.е. без кирилицы и без пробелов.
Компилируюй программу и в отладочной версии и в релизной. Утащи основные dll'ки и отладочные и релизные. Плагины тащи весь каталог "pugins", чисть реестр, всю ветку тролей грохни. Сборку лучше делать в гарантированном окружении. В студии вроде можно это задать. Либо батником. Переменная окружения PATH должна содержать минимум путей |
|
|
Текстовая версия | Сейчас: 27.12.2024, 6:41 |