Russian Qt Forum

Qt => Базы данных => Тема начата: Marat(Qt) от Октябрь 16, 2009, 08:04



Название: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: Marat(Qt) от Октябрь 16, 2009, 08:04
Делаю так:
Код:
~/.wine/dosdevices/c:/Qt/2009.04/qt/src/plugins/sqldrivers/psql$ /opt/qtsdk-2009.03/qt/bin/qmake "INCLUDEPATH+=/home/kmarat/.wine/dosdevices/c:/psql/include/" "LIBS+=/home/kmarat/.wine/dosdevices/c:/psql/lib/libpq.lib" -spec win32-g++

~/.wine/dosdevices/c:/Qt/2009.04/qt/src/plugins/sqldrivers/psql$ make clean all
последние строки вывода:
Код:
i586-mingw32msvc-g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mwindows -Wl,-s -o release/qsqlpsql.lib release/main.o release/qsql_psql.o release/moc_qsql_psql.o  -L"/home/kmarat/wine_c/Qt/2009.04/qt/lib" /home/kmarat/.wine/dosdevices/c:/psql/lib/libpq.lib -lQtSql4 -lQtCore4
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libmingw32.a(main.o):(.text+0xe3): undefined reference to `_WinMain@16'
collect2: ld returned 1 exit status
make[1]: *** [release/qsqlpsql.lib] Ошибка 1
make[1]: Выход из каталога `/home/kmarat/.wine/dosdevices/c:/Qt/2009.04/qt/src/plugins/sqldrivers/psql'
make: *** [release-all] Ошибка 2


Вопросы такие:
реально ли скомпилировать? Если реально, то как это сделать?

p.s. спек win32-g++ использовался для компиляции различных программ и пока не подводил


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: BaltikS от Октябрь 16, 2009, 09:01
Марат, возьми собранное SDK под mingw, например версию 8.1.4. и с ним замечательно компилируется драйвера QPSQL


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: Marat(Qt) от Октябрь 16, 2009, 09:28
Где бы взять его... я не совсем понимаю о чем речь...
я качал zip архив, там и исходники и бинарники, правда есть подозрение что бинарники не под мингв собраны


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: BaltikS от Октябрь 16, 2009, 10:53
Так и есть. Под Студию. А в ранних версиях в установке постгреса есть пункт Development и там после его выбора появляется 2 папки Include и Lib. А в Либ ещё две папки. 1 - с либами под студию, другая с а-никами под minGW и далее подкл.эти пути при компиляции дров и всё начинает работать!


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: Marat(Qt) от Октябрь 16, 2009, 20:23
я замучился эту версию искать... где ее можно найти? есть либо 8.1.4 сырцы, либо бинарные сборки без мингв...


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: Пантер от Октябрь 19, 2009, 16:20
Берешь сорцы и компилишь. Ничего там сложного нет. Единственное, нужно будет поставить cygwin.


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: Marat(Qt) от Октябрь 27, 2009, 09:57
Цитировать
Берешь сорцы и компилишь. Ничего там сложного нет. Единственное, нужно будет поставить cygwin.

Cygwin то зачем?
я скомпилил 8.4.1 под мингв, только он зараза мне libpq.lib не сделал... обидно, но не страшно, ибо мне и libpq.dll, полученного в результате компиляции хватило... Просто qsqlpsql4.dll пришлось у одного любезного товарища взять.

p.s. Если кто-то подскажет как скомпилить чтобы получился libpq.lib, буду очень признателен.


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: Пантер от Октябрь 27, 2009, 12:34
А как ты делал configure?


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: BaltikS от Октябрь 27, 2009, 13:10
Цитировать
Берешь сорцы и компилишь. Ничего там сложного нет. Единственное, нужно будет поставить cygwin.

Cygwin то зачем?
я скомпилил 8.4.1 под мингв, только он зараза мне libpq.lib не сделал...
Правильно, должен получится файл с расширением .a. Аналог lib


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: Marat(Qt) от Октябрь 27, 2009, 20:07
Цитировать
Правильно, должен получится файл с расширением .a. Аналог lib
Ну тут вроде разобрался... компилиться эта зараза согласилась только после появления строки "int main(){}" в конце файла main.cpp и теперь упорно выдает мне qsqlpsql.lib вместо dll... Думаю что дело в спеках, но что в них поправить?


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: Marat(Qt) от Октябрь 27, 2009, 20:46
Bingo!!!
CONFIG += dll


Название: Re: Скомпилировать QPSQL linux win32-g++ mingw
Отправлено: Marat(Qt) от Октябрь 27, 2009, 22:40
После долгих мучений библиотеку таки удалось скомпилировать
Решающую роль сыграло это:
http://www.forum.crossplatform.ru/index.php?showtopic=2833

а именно проблема отсутствия -shared, добавление которого в Makefile решило проблему компиляции.
Код:
LFLAGS = -shared

вообще это решается правкой спека, но где и как? пока ответа я не нашел