Russian Qt Forum

Qt => Общие вопросы => Тема начата: Termit от Июль 09, 2012, 12:43



Название: [Решено] MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 09, 2012, 12:43
Всем привет!

Не получается хоть ты тресни подгрузить плагин postgresql под Windows. Пытался на Windows 7 x64, Windows Server R2 x64.

Суть вопроса:
Имею Qt собранную mingw64, собранную с плагином postgresql. Только вот плагин не хочет подгружаться :(.
Если смотреть Dependency Walker, то есть один варнинг на IEFRAME.DLL
Код:
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

При этом путь по зависимостям до этой IEFRAME.DLL выглядит так:
Код:
EXCHANGE.DLL -> QTCORE4.DLL -> USER32.DLL -> POWRPROF.DLL -> SETUPAPI.DLL -> SHELL32.DLL -> SHDOCVW.DLL -> IEFRAME.DLL

Кто-нить знает что это за ерунда и как её победить?


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Serr500 от Июль 09, 2012, 16:20
А что пишет плагин, который не хочет подгружаться? ИМХО, бинарник либу постгреса не видит.


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Whiplash от Июль 09, 2012, 16:39
М.б. либа постгреса не 64, 32-битная подсунута?


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 09, 2012, 18:41
А что пишет плагин, который не хочет подгружаться? ИМХО, бинарник либу постгреса не видит.

Видит, проверял все Dependency Walker, при этом либа лежит в той же папке.


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 09, 2012, 18:43
М.б. либа постгреса не 64, 32-битная подсунута?

100% 64 бита.


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Serr500 от Июль 09, 2012, 18:46
А ей, вроде, ещё OpenSSL-библиотеки нужны - libeay и ssleay.


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 09, 2012, 18:47
А ей, вроде, ещё OpenSSL-библиотеки нужны - libeay и ssleay.

Да, нужны и они есть....


Могу выложить все библиотеки и бинарик либо сюда, либо куда-нить еще....
Если нужно только скажите...


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 09, 2012, 19:14
Либо если у кого есть рабочая 64 битная сборка Qt под Windows 64 с плагином postgres выложите где-нить. Мне этого будет достаточно.


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Serr500 от Июль 09, 2012, 20:56
Посмотрел на зависимости библиотек скомпиленной версии postgresql-9.1.4-1-windows-x64-binaries. Там ещё требуется пакет Microsoft Visual C++ 2008 (x64) (http://www.microsoft.com/ru-ru/download/details.aspx?id=15336 (http://www.microsoft.com/ru-ru/download/details.aspx?id=15336)).


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 09, 2012, 22:26
Посмотрел на зависимости библиотек скомпиленной версии postgresql-9.1.4-1-windows-x64-binaries. Там ещё требуется пакет Microsoft Visual C++ 2008 (x64) (http://www.microsoft.com/ru-ru/download/details.aspx?id=15336 (http://www.microsoft.com/ru-ru/download/details.aspx?id=15336)).

Есть и это...
Вот список файлов

Код:
sqldrivers/qsqlpsql4.dll
exchangeClient.exe
chm_exchange.dll
libeay32.dll
libgcc_s_sjlj-1.dll
libiconv-2.dll
libintl-8.dll
libpq.dll
msvcr90.dll
qsqlpsql4.dll
QtCore4.dll
QtSql4.dll
ssleay32.dll

Dependency Walker показывает, что с зависимостями все хорошо кроме IEFRAME.DLL


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Serr500 от Июль 10, 2012, 08:06
msvcr90.dll просто копировать в папку программы нельзя, не увидит. Нужно устанавливать в систему пакет Microsoft Visual C++ 2008 (x64), либо мудрить с манифестами.

Dependency Walker показывает, что с зависимостями все хорошо кроме IEFRAME.DLL
Да забудьте Вы про этот IEFrame! Dependency Walker часто всякую хрень пишет.


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 10, 2012, 11:50
msvcr90.dll просто копировать в папку программы нельзя, не увидит. Нужно устанавливать в систему пакет Microsoft Visual C++ 2008 (x64), либо мудрить с манифестами.

Вот что стоит на одной машине. (см. вложение)
На другой стоит студия 2008.

Не помогает :(


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 10, 2012, 13:02
Господа, ну не поверю, что ни у кого нет 64 битной сборки Qt под винду и нет плагина postgresql.

Проверьте плиз работоспособность. Может я вообще зря пытаюсь что-нить выдумать, скажем в 64 битной сборке вообще этот плагин не работает.


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Serr500 от Июль 10, 2012, 13:05
Я пас. Не знаю в чём дело. Может, Qt криво собралась, всё-таки этот компилер она официально, вроде, не поддерживает.

P.S. У меня нет 64-битной сборки. Давно хочу скомпилять, но пока руки не доходят.


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 10, 2012, 13:37
Я пас. Не знаю в чём дело. Может, Qt криво собралась, всё-таки этот компилер она официально, вроде, не поддерживает.

P.S. У меня нет 64-битной сборки. Давно хочу скомпилять, но пока руки не доходят.


Даже не знаю как проверить кривость сборки Qt, все работает и компилируется и всякие "Hello world" и examples-ы тоже, вот  только подстава с плагином.
У меня как раз дошли...


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 10, 2012, 13:42
Кстати о примерах. Чисто случайно вспомнил, что есть такое дело как sqlbrowser.

У меня на машине скомпилено 4 версии Qt 32-х и 64-х битные mingw и nmake. Так вот, после того как в переменную path занес только нужные каталоги 64-х битные версии и mingw и nmake увидели драйвер postgres...

Прямо сейчас буду проверять свое приложение, но уже ясно, что это я где-то натупил :(

Будем считать, что мой вопрос закрыт, дальше дело техники заставить его правильно работать.


Название: Re: MinGw 64 + Qt + Postgres + Windows 64
Отправлено: trot от Июль 10, 2012, 16:18
Даю плагин.


Название: Re: [Решено] MinGw 64 + Qt + Postgres + Windows 64
Отправлено: Termit от Июль 10, 2012, 16:29
Вся загвоздка была в переменной PATH.
Пропустил один символ "\".  :-\