Форум » [x]Harbour » MINGW + QT » Ответить

MINGW + QT

Dima: Подскажите неучу как собрать примерчик :\hb20\contrib\hbqt\tests\ Спасибо

Ответов - 33, стр: 1 2 All

Петр: Используйте hbmk2 К примеру так c:\hb20\bin\hbmk2 c:\hb20\contrib\hbqt\tests\demoqt.prg -Lпуть_к_библиотекам_QT

Dima: Петр И компилятором должен быть MSVC ? Под MINGW получится собрать ?

TimTim: У меня как раз с MinGW пример и собирается. hbmk2 demoqt.prg -LC:\Qt\4.5.3\lib\ В PATH прописано C:\MinGW\bin;C:\Qt\4.5.3\bin;C:\hb2\bin;C:\hb2\include.


Петр: Dima пишет: И компилятором должен быть MSVC ? Под MINGW получится собрать ? Можно использовать оба компилятора. MinGW используют для версий QT 4.5.x - с поддержкой sjlj Для версий 4.6.х - с поддержкой dwarf-2. Поддержка dwarf-2 более-менее реализована для версии 4.4 и выше. Для последней версии QT более рекомендовано использовать MinGW 4.5, но у нее пока нет удобного инсталятора, просто скачать один файлик и запустить не получится. Нужно скачивать по частям.

Петр: При переходе с bcc на mingw нужно учитывать, что MinGW 4 и выше на Win9x может и не работать. Нужно использовать 3.4.5. С другой стороны hbQT с bcc работать не будет, с hbIUP - проблемы со статичной линковкой библиотек и наверное эта проблема решаться не будет. Только hbWxWidgets декларирует поддержку bcc (но зато Тео отказался от поддержки xHarbour)

Dima: Петр Спасибо ! Буду разбираться.

Dima: Что то не получается... Harbour 2.0.0 (13372) QT 4.5.3 MinGW (gcc 3.4.2) (до сегодняшнего не юзал ни разу ) Пробую собрать батником из под FAR set path= set path=C:\hb20\comp\mingw\bin;C:\Qt\4.5.3\bin;c:\hb20\bin;c:\hb20\include; hbmk2 demoqt -LC:\Qt\4.5.3\lib,C:\hb20\lib\win\mingw Получаю [pre] Harbour 2.0.0 (Rev. 13372) Copyright (c) 1999-2010, http://www.harbour-project.org/ Compiling 'demoqt.prg'... Lines 3336, Functions/Procedures 23 Generating C source output to 'demoqt.c'... Done. c:/hb20/comp/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: cannot find -lQtCore4 collect2: ld returned 1 exit status hbmk2: Error: Running linker. 1 gcc.exe demoqt.o hbmk_t7yplq.o -mwindows -Wl,--start-group -lhbqt -lhbqtcore -lhbqtgui -lhbqtnetwork -l version -lshlwapi -lQtCore4 -lQtGui4 -lQtNetwork4 -lQtUiTools -lpsapi -lsupc++ -lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtpca -lgtstd -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lkernel3 2 -luser32 -lgdi32 -ladvapi32 -lws2_32 -lwinspool -lcomctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut3 2 -lmpr -lwinmm -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre -lhbzlib -Wl,--end-group -odemoqt.exe -Lc:/ hb20/lib/win/mingw -L/../lib -LC:/Qt/4.5.3/lib,C:/hb20/lib/win/mingw [/pre] Библы QtCore4 действительно нет. Может версии не срослись ну или руки у меня не из того места растут ? PS MinGW изначально качал MinGW-5.1.6.exe , его и установил. Когда качнул QT 4.5.3 и начал ставить он в процессе установки ругнулся на версию MinGW и предложил качнуть другую (я согласился)

Петр: Dima пишет: MinGW (gcc 3.4.2) (до сегодняшнего не юзал ни разу ) Ну это не страшно, но откуда взялся 3.4.2 Библы QtCore4 действительно нет. у меня после инсталяции структура каталогов такая Qt\2009.04\ - он же Qt\4.5.3\ Qt\2009.04\bin Qt\2009.04\lib Qt\2009.04\mingw Qt\2009.04\qt Qt\2009.04\share Необходимые библиотеки находятся в Qt\2009.04\qt\lib Dima пишет: он в процессе установки ругнулся на версию MinGW с 4.5.3 поставляется версия MinGW 3.4.5 адаптированная для работы с Vista. У оригинальной 3.4.5 все в порядке с 9х, но проблемы с Vistой

Dima: Петр пишет: с 4.5.3 поставляется версия MinGW 3.4.5 адаптированная для работы с Vista Что то я совсем потерялся Убил QT и MINGW Слил http://get.qt.nokia.com/qt/source/qt-win-opensource-4.5.3-mingw.exe и запустил. Во время установки было предложено слить MinGW , как ни странно слилась версия 3.4.2 Какие шаги нужно далее предпринять что бы все же собрать этот примерчик в Harbour 2.0.0 ? PS Если можно по шагово как для домохозяек

Петр: Dima пишет: как ни странно слилась версия 3.4.2 Это точно? Что показывает выполнение Qt\4.5.3\mingw\bin\gcc --ver

Петр: Dima пишет: Какие шаги нужно далее предпринять что бы все же собрать этот примерчик в Harbour 2.0.0 ? В Harbour 2.0.0 не скажу, пользуюсь версией с SVN. Значит так 1. Обновляю локальный репозитарий SVN Update 2. Делаю SVN Export в f:\harbour 3. С помощью сл. скрипта собираю harbour и нужные контриб библиотеки [pre2]@echo off setlocal set TIME_TO_BEGIN=%TIME% set PATH=h:\mingw4\bin set HB_COMPILER=mingw set HB_COMPILER_VER=44 set HB_INSTALL_PREFIX=f:\hb2.1.0-mingw ::set HB_BUILD_MODE=cpp set HB_USER_PRGFLAGS=-l set HB_USER_CFLAGS=-DHB_FM_STATISTICS -DHB_GC_AUTO -DHB_FM_DL_ALLOC rem -DSQLITE3_LIB -DSQLITE_ENABLE_COLUMN_METADATA set HB_HVM_ALL=yes set HB_BUILD_PARTS=all set HB_BUILD_DLL=yes set HB_BUILD_SHARED=yes set HB_BUILD_UNICODE=yes set HB_DIR_QT=F:\Qt set HB_WITH_QT=F:\Qt\2009.04\qt\include set HB_CONTRIBLIBS=hbbz2 hbmzip hbziparc hbct hbmemio hbnetio hbtip hbwin set HB_CONTRIBLIBS=%HB_CONTRIBLIBS% hbfoxpro hbfship hbhpdf hbmisc rem hbsqlit3 set HB_CONTRIBLIBS=%HB_CONTRIBLIBS% hbqt hbxbp hbxpp win-make clean win-make install -j2 echo %TIME_TO_BEGIN% echo %TIME% endlocal [/pre2]

Dima: Петр пишет: Это точно? Что показывает выполнение Qt\4.5.3\mingw\bin\gcc --ver Да точно gcc version 3.4.2 (mingw-special) MinGW у меня лег по умолчанию в С:\MinGW

Петр: Забыл сказать: MinGW у меня 4.4.1 sjlj Брал отсюда http://www.tdragon.net/recentgcc/

Петр: Dima пишет: Да точно gcc version 3.4.2 (mingw-special) Могет быть. Или скачай 4.4.х или используй то что есть. Пересобери с ним Harbour (Harbour можно и с 2.9 собрать) Вообще то можно устанавливать в разные папки сколько угодно компиляторов, лишь бы в PATH не путались. Поэтому я и использую setlocal set path=.. endlocal А в PATH никакие пути не прописываю. Привычка.. У меня и mingw3 и mingw4, а теперь уже mingw45 есть, и несколько watcom -oв

TimTim: Dima пишет: Слил http://get.qt.nokia.com/qt/source/qt-win-opensource-4.5.3-mingw.exe и запустил. Во время установки было предложено слить MinGW , как ни странно слилась версия 3.4.2 У меня точно такие же версии. Все работает и примеры собираются. Попробуй, действительно, как Петр пишет скачать с SVN более свежую версию Harbour. Релиз 13372 уж больно старый, а в сборке примера используются библы и из Harbour. Для сборки HB2 использую скрипт [pre2]@echo off set PATH=c:\mingw\bin set HB_COMPILER=mingw set HB_INSTALL_PREFIX=c:\hb2 set HB_USER_PRGFLAGS=-l set HB_USER_CFLAGS=-DHB_GC_AUTO -DHB_FM_DL_ALLOC set HB_HVM_ALL=yes set HB_BUILD_PARTS=all set HB_BUILD_DLL=yes set HB_BUILD_SHARED=no set HB_BUILD_UNICODE=no set HB_DIR_QT=c:\Qt set HB_WITH_QT=C:\Qt\4.5.3\include set HB_CONTRIBLIBS= win-make clean win-make install -j2 [/pre2] Собираются все contrib-s, поэтому долго, но зато много чем можно "поиграться"

Dima: TimTim Петр Спасибо !!!

Dima: TimTim пишет: скачать с SVN более свежую версию Harbour Пипец , SVN не много не так работает как CVS В c:\SVN cоздалось 3 папки , внутри них куча разных версий. Папки такие branches tags trunk Где же лежит актуальная и не глючная версия ? В Trunk ? Уже качнулось 160 метров и еще качается ;)

Петр: Dima пишет: Где же лежит актуальная и не глючная версия ? В Trunk ? Да, я обновляюсь с https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk/harbour

Dima: Петр Снова Спасибо !!! У меня снова лыжи не едут Harbour слился в C:\SVN В этой же папке (там же лежит win-make.exe) , сделал батник set PATH=C:\MinGW\bin set HB_COMPILER=mingw set HB_INSTALL_PREFIX=c:\hb2mingw set HB_USER_PRGFLAGS=-l set HB_USER_CFLAGS=-DHB_GC_AUTO -DHB_FM_DL_ALLOC set HB_HVM_ALL=yes set HB_BUILD_PARTS=all set HB_BUILD_DLL=yes set HB_BUILD_SHARED=no set HB_BUILD_UNICODE=no set HB_DIR_QT=c:\Qt set HB_WITH_QT=c:\Qt\4.5.3\include set HB_CONTRIBLIBS= win-make clean win-make install -j2 Во время запуска батника вылазит куча месаг системе не удалось найти указанный путь. Не понимаю что я не так сделал. C:\MINGW - существует и там лежит MINGW C:\QT - аналогично Запускаю все из под FAR manager Картинка примерно такая ЗЫ MinGW (gcc 3.4.2) , может в этом причина ?

Dima: Dima пишет: MinGW (gcc 3.4.2) , может в этом причина ? Причина похоже не в этом. Пошла таки сборка. 2 одинаковых батника , один собирает, другой нет. Позже выложу результат.

Петр: Dima пишет: Harbour слился в C:\SVN В этой же папке (там же лежит win-make.exe) В папке C:\SVN должна быть папка harbour, а уже там win-make.exe и все остальное, туда же забросить батник и там запустить. Или, как я писал сделать экспорт, например в c:\harbour и там шаманить

Петр: Dima пишет: 2 одинаковых батника , один собирает, другой нет. Чудес не бывает, могут быть пробелы в конце строк

Dima: Петр пишет: В папке C:\SVN должна быть папка harbour Петр пишет: я обновляюсь с https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk/harbour При таком раскладе папки harbour у меня не появилось а вот все что в ней должно быть лежит в корне C:\SVN Впрочем это и не важно. Сейчас идет сборка , что интересно QT собирается с огромной кучей ворнингов. Это нормально ?

Петр: Надо создать вручную папку svn\harbour Потом, в зависимости от используемого клиента сделать checkout из указанной папки. В случае использования TortoiseSVN использовать контекстное меню, правый клик на папке SVN Checkout (при использовании eng версии) и ввести указанный уже URL и папку для checkout Это не важно, но разработчик системы сборки не может предусмотреть всего, кто как сырцы разместит, какие переменные окружения создаст и так дальше.. Dima пишет: Сейчас идет сборка , что интересно QT собирается с огромной кучей ворнингов. Последний раз собирал с MinGW 4.5 и QT 4.6, предупреждений много не было. Для 3.4.2 может и нормально, нужно смотреть, что за предупреждения.

Dima: Петр пишет: Чудес не бывает, могут быть пробелы в конце строк Так и есть ;) Петр пишет: Надо создать вручную папку svn\harbour Хорошо. Так и сделаю. Спасибо !

Dima: Петр пишет: нужно смотреть, что за предупреждения. В основном вот такого плана. c:/Qt/4.5.3/include/QtGui/../../src/gui/painting/qcolor.h:266: warning: inline f unction 'QColor QColor::lighter(int) const' is declared as dllimport: attribute ignored. c:/Qt/4.5.3/include/QtGui/../../src/gui/painting/qcolor.h:269: warning: inline f unction 'QColor QColor::darker(int) const' is declared as dllimport: attribute i gnored. In file included from c:/Qt/4.5.3/include/QtGui/qfont.h:1, from c:/Qt/4.5.3/include/QtGui/../../src/gui/text/qtextformat.h :46, from c:/Qt/4.5.3/include/QtGui/qtextformat.h:1, from c:/Qt/4.5.3/include/QtGui/../../src/gui/text/qtextobject.h :46, from c:/Qt/4.5.3/include/QtGui/qtextobject.h:1, from c:/Qt/4.5.3/include/QtGui/QTextBlock:1, from ../../../QTextBlock.cpp:70: c:/Qt/4.5.3/include/QtGui/../../src/gui/text/qfont.h:264: warning: inline functi on 'uint QFont::resolve() const' is declared as dllimport: attribute ignored. c:/Qt/4.5.3/include/QtGui/../../src/gui/text/qfont.h:265: warning: inline functi on 'void QFont::resolve(uint)' is declared as dllimport: attribute ignored. c:/Qt/4.5.3/include/QtGui/../../src/gui/text/qfont.h:321: warning: inline functi on 'bool QFont::bold() const' is declared as dllimport: attribute ignored.

Петр: Не обращай внимание или смени компилятор.

Dima: Петр На какую версию (Mingw) ? Какая версия QT с какой версией MinGW лучшее уживается (наверное тут нужно учесть и версию Harbour) ? Петр пишет: Последний раз собирал с MinGW 4.5 и QT 4.6 Такая связка будет нормально работать ? PS Harbour 2.1.0beta1 (Rev. 14640)

Петр: Я не использую QT. Так что в ответах будем ориентироваться на информацию из файла INSTALL [pre2] HB_WITH_QT - Nokia QT (GUI) [win, wce, os2, darwin, linux, free, open-source] http://qt.nokia.com/products/ http://get.qt.nokia.com/qt/source/ Currently supported Windows binary package: http://get.qt.nokia.com/qt/source/qt-win-opensource-4.5.3-mingw.exe http://get.qt.nokia.com/qt/source/qt-win-opensource-4.6.2-mingw.exe How to create static and MSVC builds: http://doc.trolltech.com/4.5/deployment-windows.html NOTES: - QT 4.5.x requires MinGW builds with SJLJ stack frame unwinding. - QT 4.6.x requires MinGW builds with DWARF-2 stack frame unwinding. (mingw official 4.4.0 or upper, or mingw tdm with dwarf update) [/pre2] Т.е. QT выше 4.5.. Говорят, что в QT 4.6 исправлено много ошибок. Значит если нет каких-то собственных предпочтений или требований (к примеру в любимом дистрибутиве Linux поддерживается пока только версия 4.5.0) - берем QT 4.6. Теперь к MinGW, если версия QT 4.5.x - то по барабану 3.4.х и выше. Если 4.6.х, то MinGW 4.5.x dwarf-2 предпочтительнее. Хотя в том дистрибутиве 2009.5, который имеется в моем распоряжении версия 4.4.0-dw-2. Но все таки 4.5.х предпочтительнее. Поддержка dwarf-2 уже нативная и не требует костылей.

Петр: Сейчас Harbour с SVN достаточно стабильный. И опять же на мой взгляд, может быть использован в разработке. Contrib библиотеки, такие как hbwin, hbqt и несколько других как раз предпочтительнее использовать с SVN. Обновления и улучшения вносятся если не ежедневно, то еженедельно. Естественно и ошибки случаются регулярно. Но при виявлении оперативно устраняются, в отличии от xHarbour.

leo: Петр пишет: Я не использую QT Интересно на какой графической библиотеке вы остановили свой выбор?

Dima: Петр пишет: Если 4.6.х, то MinGW 4.5.x dwarf-2 предпочтительнее. QT 4.6.2 слил и установил. Искал MinGW 4.5.x dwarf-2 , так и не нашел где можно его слить. Ссылкой не поделишься ?

Петр: Dima пишет: Искал MinGW 4.5.x dwarf-2 , так и не нашел где можно его слить. Нет у меня ссылки на инсталятор. Нужно с sourceforge слить binutils-2.20.1-2-mingw32-bin.tar.gz gcc-4.5.0-1-mingw32-doc.tar.lzma gcc-4.5.0-1-mingw32-lang.tar.lzma gcc-4.5.0-1-mingw32-lic.tar.lzma gcc-c++-4.5.0-1-mingw32-bin.tar.lzma gcc-core-4.5.0-1-mingw32-bin.tar.lzma gdb-7.1-2-mingw32-bin.tar.gz gmp-5.0.1-1-mingw32-dev.tar.lzma gmp-5.0.1-1-mingw32-doc.tar.lzma gmp-5.0.1-1-mingw32-lic.tar.lzma gmp-5.0.1-1-mingw32.RELEASE_NOTES.txt libgcc-4.5.0-1-mingw32-dll-1.tar.lzma libgmp-5.0.1-1-mingw32-dll-10.tar.lzma libgmpxx-5.0.1-1-mingw32-dll-4.tar.lzma libgomp-4.5.0-1-mingw32-dll-1.tar.lzma libmpc-0.8.1-1-mingw32-dll-2.tar.lzma libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma libpthread-2.8.0-3-mingw32-dll-2.tar.lzma libssp-4.5.0-1-mingw32-dll-0.tar.lzma libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma make-3.81-20090914-mingw32-bin.tar.gz mingwrt-3.18-mingw32-src.tar mingwrt-3.18-mingw32-src.tar.gz mpc-0.8.1-1-mingw32-dev.tar.lzma mpc-0.8.1-1-mingw32-doc.tar.lzma mpc-0.8.1-1-mingw32-lic.tar.lzma mpc-0.8.1-1-mingw32.RELEASE_NOTES.txt mpfr-2.4.1-1-mingw32-dev.tar.lzma mpfr-2.4.1-1-mingw32-doc.tar.lzma mpfr-2.4.1-1-mingw32-lic.tar mpfr-2.4.1-1-mingw32-lic.tar.lzma pthreads-w32-2.8.0-3-mingw32-dev.tar.lzma pthreads-w32-2.8.0-3-mingw32-doc.tar.lzma pthreads-w32-2.8.0-3-mingw32-lic.tar.lzma w32api-3.14-mingw32-dev.tar.gz Сбросить в кучу в папку, например c:\mingw45 и с помощью архиватора 7z разархивировать с соблюдением структуры (Разархивировать здесь или Extract Here ) Сначала lzma. Потом их удалить (переместить) и разархивировать .tar .gz файлы. Начинать нужно с gcc-core-4.5.0-1-mingw32-bin, дальше не суть важно.



полная версия страницы