Russian Qt Forum
Ноябрь 24, 2024, 02:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Скомпилировать QPSQL linux win32-g++ mingw  (Прочитано 8321 раз)
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++ использовался для компиляции различных программ и пока не подводил
Записан
BaltikS
Гость
« Ответ #1 : Октябрь 16, 2009, 09:01 »

Марат, возьми собранное SDK под mingw, например версию 8.1.4. и с ним замечательно компилируется драйвера QPSQL
Записан
Marat(Qt)
Гость
« Ответ #2 : Октябрь 16, 2009, 09:28 »

Где бы взять его... я не совсем понимаю о чем речь...
я качал zip архив, там и исходники и бинарники, правда есть подозрение что бинарники не под мингв собраны
Записан
BaltikS
Гость
« Ответ #3 : Октябрь 16, 2009, 10:53 »

Так и есть. Под Студию. А в ранних версиях в установке постгреса есть пункт Development и там после его выбора появляется 2 папки Include и Lib. А в Либ ещё две папки. 1 - с либами под студию, другая с а-никами под minGW и далее подкл.эти пути при компиляции дров и всё начинает работать!
Записан
Marat(Qt)
Гость
« Ответ #4 : Октябрь 16, 2009, 20:23 »

я замучился эту версию искать... где ее можно найти? есть либо 8.1.4 сырцы, либо бинарные сборки без мингв...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Октябрь 19, 2009, 16:20 »

Берешь сорцы и компилишь. Ничего там сложного нет. Единственное, нужно будет поставить cygwin.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Marat(Qt)
Гость
« Ответ #6 : Октябрь 27, 2009, 09:57 »

Цитировать
Берешь сорцы и компилишь. Ничего там сложного нет. Единственное, нужно будет поставить cygwin.

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

p.s. Если кто-то подскажет как скомпилить чтобы получился libpq.lib, буду очень признателен.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Октябрь 27, 2009, 12:34 »

А как ты делал configure?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
BaltikS
Гость
« Ответ #8 : Октябрь 27, 2009, 13:10 »

Цитировать
Берешь сорцы и компилишь. Ничего там сложного нет. Единственное, нужно будет поставить cygwin.

Cygwin то зачем?
я скомпилил 8.4.1 под мингв, только он зараза мне libpq.lib не сделал...
Правильно, должен получится файл с расширением .a. Аналог lib
Записан
Marat(Qt)
Гость
« Ответ #9 : Октябрь 27, 2009, 20:07 »

Цитировать
Правильно, должен получится файл с расширением .a. Аналог lib
Ну тут вроде разобрался... компилиться эта зараза согласилась только после появления строки "int main(){}" в конце файла main.cpp и теперь упорно выдает мне qsqlpsql.lib вместо dll... Думаю что дело в спеках, но что в них поправить?
Записан
Marat(Qt)
Гость
« Ответ #10 : Октябрь 27, 2009, 20:46 »

Bingo!!!
CONFIG += dll
Записан
Marat(Qt)
Гость
« Ответ #11 : Октябрь 27, 2009, 22:40 »

После долгих мучений библиотеку таки удалось скомпилировать
Решающую роль сыграло это:
http://www.forum.crossplatform.ru/index.php?showtopic=2833

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

вообще это решается правкой спека, но где и как? пока ответа я не нашел
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.13 секунд. Запросов: 22.