![]() |
|
![]() ![]() ![]() |
|
LazyVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.2.2008 Где: Ekaterinburg Репутация: нет Всего: нет |
Доброго здравия.
Вот уже 5 дней пытаюсь собрать драйвер для постгрес, но никакого толка не выходит. Не справившись с проблемой самостоятельно, надеюсь на вашу помощь, господа форумчане. О компонентах: 1) WindowsXP SP2; 2) qt-win-opensource-src-4.3.3.zip 3) postgresql-8.3.0-1.zip 4) MinGW-3.4.2.exe 5) mingw-utils-0.3.tar.gz Переменные среды: PATH = C:\MinGW\bin;C:\Qt\4.3.3\bin;C:\PostgreSQL\bin INCLUDE = C:\PostgreSQL\include LIB = C:\PostgreSQL\lib QTDIR = C:\Qt\4.3.3 QMAKESPECS = win32-g++ configure.bat:
Действия: Руководствуясь http://projects.org.ua/forum.phpbb2ru/view...7467ce0265480b7 переделал libpq.lib в lib.a следующим образом: reimp -d libpq.lib скопировал из директории PostgreSQL\bin в ..\lib libpq.dll убрал подчеркивания в LIBPQ.DEF dlltool --input-def libpq.def --dllname libpq.dll --output-lib libpq.a --kill-at Далее собрал Qt приведенным выше батником, все прошло успешно, но: 1) Драйвер не отображается для приложений 2) Не запускается sqlbrowser через qdemo 3) При запуске вручную из папки вылетает следующая ошибка: Порядковый номер 284 не найден в библиотеке DLL SSLEAY32.dll При проверке Dependency Walker'ом sqlbrowser.exe получены следующие сообщения: Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module. В общем дело сводится к тому что он ругается на MPR.dll, WNetRestoreConnectionA помечена красным. Но я где то читал что на это не надо обращать внимания т.к. это вроде dw гонит. Надеюсь проблему изложил верно, жду комментариев и помощи, заранее благодарен всем. P.S. также компилил как плагин, пробовал на бинарной версии Qt но бестолку (: Это сообщение отредактировал(а) LazyVoid - 1.3.2008, 01:43 |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Это либа от OpenSSL. Нафиг делать reimp, когда Postgre прекрасно собирается мингвой не понимаю, если собирать отстоем в виде MSVC, то да. Мой совет, хочешь Слона собирай и линкуй его к Qt своими силами, плюнь на плагины, как показывает опыт они бажные по самое не балуй. Взять хотябы последний WebKit, крашится хоть на Win2000, хоть на WinXP. И вообще чем больше вникаю в Qt, тем больше понимаю, что оно глючное, но это лучшая альтернатива. |
|||
|
||||
LazyVoid |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.2.2008 Где: Ekaterinburg Репутация: нет Всего: нет |
Может я плохо выразился. Смысл в том что я поставил Постгрес из бинарника, а reimp делал для того чтобы мингв получил либу для сборики драйвера, т.к. он вроде как не понимает либы *.lib, вот и делал *.а
поподробнее бы расписали ![]() |
||||
|
|||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
- качаем исходники слона - качаем исходники openssl - компилим openssl мингвой - конфигурим исходники слона включая поддержку опенссл, прописываем директории до ходиреов и .a файлов - компилим слона мингвой - открываем .pro файл своего проекта и добавляем путь для поисков иклудов: INCLUDEPATH += путь_до_инклудов_слона LIBS += -Lпуть_где_искать_.a_файлы_слона -lимя_линкуемого.a_файла - открываем исходники и прописываем иклуд: #include "libpq-fe.h" - пишем свой код для работы с базой данных:
И т.д., это уже в доки по слону. |
||||
|
|||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 7 Всего: 162 |
![]() |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Да всё там как таковое работает нормально. И под виндой, и под линем. Конкретно с постгрисом - под виндой не собирал. Могу попробовать - думаю это возможно, причём без пересборки постгриса. Вообще, его бинарные виндовые дистры разве не через МинГВ собраны?
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ага, настолько нормально, что сам Qt не может быть собран с оптимизацией -O3 и с поддержкой SSE2 без крашей приложений, а QWebKit крашится на ровном месте.
Стили отличные от стандартного windows лагают не по детски на сильной тачке. А при простом движении мышки над контролами Qt приложение в таскбаре при этом жрет 99% процессорного времени. Я понимаю, что ничто не идеально и тот же Delphi глюканутый по самые помидоры, но и плагины баз данных Qt не панацея, куда правильней писать независимый код, особенно, если проекты типа PostgreSQL кроссплатформенные и их можно использовать не только в Qt. Плагины баз данных Qt ограничивают возможность использовать другие функции, которые предоставляет библиотека. Например почти для всех баз данных есть функция экранирования запроса, чтобы избежать SQL Injection, в классе QSqlQuery этой функции нету, хотя и могла бы быть. И приходится писать свои аналоги, несмотря на то, что библиотеки уже имеют эту функцию и распространяются с твоей программой. В итоге имеем программу, где одни и те же функции реализованы по 100 раз только потому, что удобно привести все к одной схеме, под одну гребенку. |
|||
|
||||
JackYF |
|
||||||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 7 Всего: 162 |
Пруфлинк? И вообще, нет - ну и фиг с ним - мало что теряем.
Омф, никогда такого не видел.
Согласен, недостаток. Напиши им в wishlist. По информации от nickless QSqlQuery::bindValue делает то, что надо. Это сообщение отредактировал(а) JackYF - 2.3.2008, 19:42 |
||||||
|
|||||||
nickless |
|
||||||||||||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 13 Всего: 181 |
Даа? ![]() Долго пробовал заинжектить чего-нибудь в базу данных амарок-а, не получилось:
Пишет -1 rows affected. Вот так
автоматически экранирует ' Даже вот так:
Выдаёт
А зачем использовать агрессивную оптимизацию? С ней вообще половина приложений падает, это и так известно. С -О2 у меня прекрасно работает, правда на винде не пробовал, там еще mingw и сама винда может проблемы создаёт. Добавлено через 1 минуту и 17 секунд ЗЫ, база данных = QMYSQL -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
||||||||||||
|
|||||||||||||
LazyVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.2.2008 Где: Ekaterinburg Репутация: нет Всего: нет |
Всем принявшим участие спасибо! Отдельное спасибо SABROG'у, который навел на решение проблемы. Проблема была решена самостоятельной сборкой OpenSSL и PostgreSQL, после которых драйвер заработал сам. P.S. тем не менее решил не юзать кутишные возможности для работы с базой, а делать через стандартные интерфейсы, опять же спасибо (или нет, время покажет ;) ) товарищу SABROG'у P.P.S. +1 ![]() Это сообщение отредактировал(а) LazyVoid - 2.3.2008, 23:47 |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 7 Всего: 162 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |