Форум » [x]Harbour » Как собрать Harbour 2.... из исходников » Ответить

Как собрать Harbour 2.... из исходников

TimTim: Добрый день! До сих пор работал в основном с xHarbour, но в связи с возрастающим интересом к Harbour 2.0 хотел попробовать собрать hb2 из исходников, т.к. основной интерес представляет contrib\hbide. Но это так, для начала. Скачал из SVN исходники, почитал в корне папки Harbour файл install. Показалось, что несложно. Скачал и установил MinGW 5.1.6. Указал путь на него? ввел переменную HB_INSTALL_PREFIX=C:\hb2 Запустил mingw32-make install. Сработало, но с ошибками. Папка C:\hb2 создалась, но в \bin только два файла harbour.exe и hbpp.exe и hbmk2.exe нет. Понятно, что неправильно собралось, но что делать. Пробовал задавать различные переменные среды, пути, но тщетно. Короче, не догоняю и пока полная Помогите кто в теме, укажите "путь воина".

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

Петр: Помогите кто в теме, укажите "путь воина". Собираю таким скриптом @echo off set PATH=h:\mingw4\bin set HB_COMPILER=mingw set HB_INSTALL_PREFIX=e:\hb2.0-mingw 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=e:\Qt set HB_WITH_QT=e:\Qt\2009.04\qt\include set HB_HAS_SQLITE=-DSQLITE3_LIB -DSQLITE_ENABLE_COLUMN_METADATA set HB_CONTRIBLIBS=hbct hbhpdf hbmemio hbmzip hbnetio hbsqlite3 hbwin win-make clean win-make install -j2 в HB_CONTRIBLIBS добавлять по вкусу

TimTim: К сожалению, воз и ныне там. Точно такой же результат и после применения вашего скрипта Петр. Видно, какого-то ингредиента, чтобы по полной ощутить вкус у меня не хватает. Я, естественно, немного изменил скрипт @echo off set PATH=c:\mingw\bin set HB_COMPILER=mingw set HB_INSTALL_PREFIX=c:\hb2.0-mingw 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\2009.05\qt\include set HB_HAS_SQLITE=-DSQLITE3_LIB -DSQLITE_ENABLE_COLUMN_METADATA set HB_CONTRIBLIBS=hbct hbhpdf hbmzip hbsqlite3 hbwin hbide win-make clean win-make install -j2 А вот последние сообщения скрипта Но у меня zLib вроде есть и путь на него есть. Как быть?

Петр: В принципе я могу тоже получить такую же ошибку, как у вас на картинке, установив set HB_EXTERNALLIBS=no или что-то в этом же духе. Обновитесь в SVN, сделайте export в новый пустой каталог и пробуйте опять. И конечно же пересмотрите переменные окружения.


TimTim: Дело в том, что я экспериментирую на чистой машине, только установил ХР. Еще раз обновился. Переписал все в новый каталог. Та же картина. Вот мои переменные окружения [pre2]ALLUSERSPROFILE=C:\Documents and Settings\All Users APPDATA=C:\Documents and Settings\Администратор\Application Data CLIENTNAME=Console CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=TIM-C04977796F7 ComSpec=C:\WINDOWS\system32\cmd.exe FARHOME=C:\Program Files\Far FARLANG=Russian FP_NO_HOST_CHECK=NO HB_INSTALL_PREFIX=C:\hb2 HB_WITH_QT=C:\Qt\2009.05\qt\include\ HB_WITH_SQLITE3=C:\sqlite3 HB_WITH_ZLIB=C:\zlib HOMEDRIVE=C: HOMEPATH=\Documents and Settings\Администратор LOGONSERVER=\\TIM-C04977796F7 NUMBER_OF_PROCESSORS=1 OS=Windows_NT Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\MinGW\bin;C:\zLib;C:\Qt;C:\SQLite3;C:\Arc PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 11, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=0f0b ProgramFiles=C:\Program Files PROMPT=$P$G SESSIONNAME=Console SET INCLUDE=C:\zLib\include SET LIB=C:\zLib\lib SystemDrive=C: SystemRoot=C:\WINDOWS TEMP=C:\DOCUME~1\9335~1\LOCALS~1\Temp TMP=C:\DOCUME~1\9335~1\LOCALS~1\Temp USERDOMAIN=TIM-C04977796F7 USERNAME=Администратор USERPROFILE=C:\Documents and Settings\Администратор windir=C:\WINDOWS [/pre2] Может поможет сообщение скрипта в начале [pre2]! Building Harbour 2.0.1dev from source - http://www.harbour-project.org ! MAKE: win-make 3.81 sh.exe install ! HB_USER_PRGFLAGS: -l ! HB_USER_CFLAGS: -DHB_GC_AUTO -DHB_FM_DL_ALLOC ! HB_INSTALL_PREFIX: c:\hb2.0-mingw ! HB_BUILD_DLL: yes ! HB_BUILD_SHARED: no ! HB_BUILD_UNICODE: no ! HB_BUILD_PARTS: all ! HB_CONTRIBLIBS: hbct hbhpdf hbmzip hbsqlite3 hbwin hbide ! HB_EXTERNALLIBS: yes ! HB_HOST_PLAT: win (x86) HB_SHELL: nt ! HB_PLATFORM: win (x86) (autodetected) ! HB_COMPILER: mingw ! Component: 'zlib' not found. Configure with HB_WITH_ZLIB. ! Component: 'pcre' not found. Configure with HB_WITH_PCRE. ! Component: 'openssl' not found. Configure with HB_WITH_OPENSSL. ! Component: 'gpm' not supported on win platform ! Component: 'slang' not found. Configure with HB_WITH_SLANG. ! Component: 'curses' not found. Configure with HB_WITH_CURSES. ! Component: 'x11' not found. Configure with HB_WITH_X11. ! Component: 'wattcp/watt-32' not supported on win platform Скопировано файлов: 1. Скопировано файлов: 1. ............................[/pre2] Туплю видно по полной Может есть еще идеи.

Петр: TimTim пишет: HB_WITH_SQLITE3=C:\sqlite3 HB_WITH_ZLIB=C:\zlib HOMEDRIVE=C: Что это и зачем. Вы экспериментируете с zlib? Если нет, у вас в \harbour\external есть адаптированный zlib. Система сборки сама его использует по умолчанию, если явно не указать обратное, путем HB_WITH_ или запретить через HB_EXTERNALLIBS=.. Тоже самое с sqlite3.

Петр: В догонку - set HB_EXTERNALLIBS=yes также может новичку устроить головоломку, так что для начала [pre2]@echo off set PATH=c:\mingw\bin set HB_COMPILER=mingw set HB_INSTALL_PREFIX=c:\hb2.0-mingw win-make clean win-make install [/pre2]а уже дальше, с приходом понимания окружающего мира ;) , все остальное.

TimTim: Нет, с zlib я не экспериментирую, пытался таким образом реагировать на сообщение [pre2]! Component: 'zlib' not found. Configure with HB_WITH_ZLIB.[/pre2] и на сообщение из картинки [pre2]"makefile:360 *** ! Error zlib component requared ..."[/pre2] Убрал HB_WITH_ZLIB и HB_WITH_SQLITE3 из переменных среды и из PATH Обновился до 13613, с вашим первым скриптом получил чуть больше в папке lib, остальное такое же. По началу сообщений скрипта понятно, что локальные zLib и Sqlite3 найдены (папка, где исходники D:\Harbour) [pre2]! Building Harbour 2.0.1dev from source - http://www.harbour-project.org ! MAKE: win-make 3.81 sh.exe clean ! HB_USER_PRGFLAGS: -l ! HB_USER_CFLAGS: -DHB_GC_AUTO -DHB_FM_DL_ALLOC ! HB_INSTALL_PREFIX: c:\hb2.0-mingw ! HB_BUILD_DLL: yes ! HB_BUILD_SHARED: no ! HB_BUILD_UNICODE: no ! HB_BUILD_PARTS: all ! HB_CONTRIBLIBS: hbct hbhpdf hbmzip hbsqlite3 hbwin hbide ! HB_EXTERNALLIBS: yes ! HB_HOST_PLAT: win (x86) HB_SHELL: nt ! HB_PLATFORM: win (x86) (autodetected) ! HB_COMPILER: mingw ! Component: 'zlib' found in D:/Harbour/external/zlib (local) ! Component: 'pcre' found in D:/Harbour/external/pcre (local) ! Component: 'openssl' not found. Configure with HB_WITH_OPENSSL. ! Component: 'gpm' not supported on win platform ! Component: 'slang' not found. Configure with HB_WITH_SLANG. ! Component: 'curses' not found. Configure with HB_WITH_CURSES. ! Component: 'x11' not found. Configure with HB_WITH_X11. ! Component: 'wattcp/watt-32' not supported on win platform ! 'gtcrs' library skipped (component not found) ! 'gtdos' library skipped (platform not supported) ! 'gtos2' library skipped (platform not supported) ! 'gtsln' library skipped (component not found) ! 'gttrm' library skipped (platform or compiler not supported) ! 'gtxwc' library skipped (component not found) [/pre2] Вот что выдалось в конце А по поводу короткого скрипта, согласен, что надо начать с малого. Подправил переменную set HB_INSTALL_PREFIX=с:\hb2 чтобы в другой каталог собирался Harbour, да вот незадача кроме этого каталога скрипт ничего и не создает

Петр: Петр пишет: В догонку - set HB_EXTERNALLIBS=yes также может новичку устроить головоломку, так что для начала TimTim пишет: ! HB_EXTERNALLIBS: yes ??

TimTim: Да, спасибо, обратил внимание. Оказывается set HB_EXTERNALLIBS=yes по умолчанию. Вставил [pre2]set HB_EXTERNALLIBS=no [/pre2] в короткий скрипт. Теперь создался каталог c:\hb2 и в нем еще два каталога doc и include с файлами. И все! В конце сообщение

Петр: HB_EXTERNALLIBS по умолчанию не yes это или пустая строка или HB_EXTERNALLIBS=pcre zlib libhpdf libpng sqlite3, как хотите, так и считайте set HB_EXTERNALLIBS=yes выбросьте, это пока не для вас. Вы в моих скриптах выдели установку этой переменной? И я в ваших (тех которые вы здесь опубликовали) не видел явной установки. Поэтому, давайте почистите переменные окружения и без самодеятельности

santy: Последовательность сборки для MING 3.4.5: 1. Прописываем путь в PATH - E:\Mingw_345\BIN 2. Переименовываем каталоги для других компиляторов (Watcom, Borland или mingw другой версии) 3. Запускаем win-make.exe. В каталоге BIN\WIN\MINGW\ создаются файлы harbour-20.def harbour-20.dll harbour.exe harbourmt-20.def harbourmt-20.dll hbformat.exe hbi18n.exe hbmk2.exe hbpp.exe hbrun.exe hbtest.exe LIB\WIN\MINGW\ создаются 64 библиотеки Чего не достаёт можна взять с каталога contrib и пересобрать, предварительно указав путь к установленым библиотекам. Исходники брал отсюда http://sourceforge.net/projects/harbour-project/files/source/2.0.0/harbour-2.0.0-src.zip/download

TimTim: Спасибо, Santy. Если вы заметили, я как раз пытаюсь это сделать, только исходники беру с SVN. Итак, отставить самодеятельность. С удовольствием выбросил переменную set HB_EXTERNALLIBS=yes Замечу только, что был введен в заблуждение строками [pre2] - HB_EXTERNALLIBS=no Don't build any external libraries. Default: yes - HB_EXTERNALLIBS=[<list>] Build space separated <list> of external libraries. Build all if left empty. [/pre2] из файла install в разделе [pre2]6. OPTIONS AVAILABLE WHEN BUILDING HARBOUR[/pre2] Далее, еще раз обновился с SVN, удалил все ранее созданные папаки с hb, дистрибутив выгрузил в отдельный каталог и запустил скрипт [pre2]@echo off set PATH=c:\mingw\bin set HB_COMPILER=mingw set HB_INSTALL_PREFIX=c:\hb2 win-make clean win-make install [/pre2] Наконец, по-моему, все собралось. В каталоге c:\hb2\bin файлы [pre2]harbour.exe harbour-20.dll harbourmt-20.dll hbformat.exe hbformat-dll.exe hbi18n.exe hbi18n-dll.exe hbmk.cfg hbmk2.exe hbmk2.hu_HU.hbl hbmk2.pt_BR.hbl hbmk2-dll.exe hbpp.exe hbrun.exe hbrun-dll.exe hbtest.exe hbtest-dll.exe[/pre2] каталоги c:\doc и c:\include и до этого собирались вроде правильно. В папке c:\hb2\lib\win\mingw 64 файла [pre2]libgtcgi.a libgtgui.a libgtpca.a libgtstd.a libgtwin.a libgtwvg.a libgtwvt.a libharbour-20.a libharbourmt-20.a libhbblat.a libhbbmcdx.a libhbbtree.a libhbclipsm.a libhbcommon.a libhbcpage.a libhbcplr.a libhbct.a libhbdebug.a libhbextern.a libhbgt.a libhbhpdf.a libhbhsx.a libhblang.a libhbmacro.a libhbmaindllh.a libhbmaindllp.a libhbmainstd.a libhbmainwin.a libhbmemio.a libhbmisc.a libhbmzip.a libhbnetio.a libhbnf.a libhbnortl.a libhbnulrdd.a libhbodbc.a libhbpcre.a libhbpp.a libhbrdd.a libhbrtl.a libhbsix.a libhbsms.a libhbsqlit3.a libhbtip.a libhbtpathy.a libhbuddall.a libhbusrrdd.a libhbvm.a libhbvmmt.a libhbwin.a libhbxbp.a libhbziparc.a libhbzlib.a liblibhpdf.a liblibpng.a librddcdx.a librddfpt.a librddnsx.a librddntx.a librddsql.a libsddodbc.a libsqlite3.a libxhb.a libxpp.a[/pre2] Проверил hbmk2 на тестовом примере как написано в файле install. Мир приветствуется! Естественно, проверил и скрипт [pre2]@echo off set PATH=c:\mingw\bin set HB_COMPILER=mingw set HB_INSTALL_PREFIX=c:\hb2_1 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\2009.05\qt\include set HB_HAS_SQLITE=-DSQLITE3_LIB -DSQLITE_ENABLE_COLUMN_METADATA set HB_CONTRIBLIBS=hbct hbhpdf hbmemio hbmzip hbnetio hbsqlite3 hbwin hbide win-make clean win-make install -j2 [/pre2] Также все собирается. Спасибо Петр. Аппетит приходит во время еды! Следующий вопрос как собрать требуемые программы из contrib, скажем hbqt или hbide? Наверное, так же можно собирать примеры из папки examples? И еще, хотелось бы прогнать тесты для hbct, т.к. тесты для Harbour(утилита hbtest.exe) я уже прогнал и из результатов много интересного для себя почерпнул. Кстати, а для чего в каталоге BIN предназначены файлы с [pre2]*-dll.exe[/pre2]? Пока все

TimTim: Добавил путь c:\hb2\bin в PATH и попытался собрать hbide. Получил Примерно такая же картина при попытке сбора hbqt, hbfimage. Помогите советом.

Петр: TimTim пишет: Примерно такая же картина при попытке сбора hbqt, hbfimage Добавьте в ваш скрипт set HB_DIR_QT=c:\Qt set HB_WITH_QT=c:\Qt\2009.04\qt\include set HB_WITH_FREEIMAGE=путь к заголовочным файлам freeimage set HB_CONTRIBLIBS=hbct hbhpdf hbmemio hbmzip hbnetio hbsqlite3 hbwin hbqt hbfimage Можно, чтобы уменьшить время компиляции установить set HB_BUILD_PARTS=lib и закомментировать ::win-make clean По поводу hbide. Если вы собираете с помощью hbmk2 укажите ключом -L путь к вашим библиотекам Qt

TimTim: Оставим пока freeimage. Это не спеху. Скрипт для сборки [pre]@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\2009.05\qt\include set HB_HAS_SQLITE=-DSQLITE3_LIB -DSQLITE_ENABLE_COLUMN_METADATA set HB_CONTRIBLIBS=hbct hbhpdf hbmemio hbmzip hbnetio hbsqlite3 hbwin hbide hbqt hbxpb win-make install -j2[/pre] Удается собрать тестовый пример для hbqt только если переименовать libQtCore4.a из каталога C:\Qt\2009.05\qt\lib в QtCore4.a, поскольку при линковке требовалась именно последняя библиотека. Собирается пример так [pre2]hbmk2 demoqt.prg -LC:\Qt\2009.05\qt\lib[/pre2] Для запуска получившегося demoqt.exe в переменную Path добавил путь к .dll C:\Qt\2009.05\qt\bin. Может у меня не та версия Qt? А hbide я так и не смог собрать. Продвинулся только в том, что надо еще библиотеку hbxbp.a собрать, поэтому включил ее в скрипт сборки. А сам hbide cобираю так [pre2]hbmk2 hbide.hbp -LC:\Qt\2009.05\qt\lib[/pre2] Результат такой Что делаю не так? А можно ли сделать так, чтобы результаты компиляции и линковки выдавать в файл?

Петр: TimTim пишет: Может у меня не та версия Qt? Используйте 2009.04. Или 2009.05 для MSVC 2008 и соответственно компилятор от MS. Оффициально Harbour поддерживает 2009.04. Поскольку ... (здесь должно быть слишком много текста).

TimTim: Еще раз прочёл в файле INSTALL (релиз 13724) про Qt и MinGW. (Кстати, заметил, что для параметра HB_EXTERNALLIBS изменилось описание.) Я все-таки попробую найти рекомендуемую версию Qt и соответствующую версию MinGW. Раз уж с этого начал и столько возился. Тем более, что уже что-то стало получаться. Петр пишет: Или 2009.05 для MSVC 2008 и соответственно компилятор от MS. Посмотрел на сайте http://qt.nokia.com есть версия Qt libraries 4.6.1 for Windows (VS 2008, 194 MB). Это и есть версия для MSCV 2008? А в качестве компилятора от MS, если нет другого, Microsoft Visual Studio 2008 Express Edition подойдёт?

Петр: найти рекомендуемую версию Qt и соответствующую версию MinGW Pritpal Bedi, насколько мне известно использует версию 4.5.3. Это и есть версия для MSCV 2008? А в качестве компилятора от MS, если нет другого, Microsoft Visual Studio 2008 Express Edition подойдёт? Да, подойдет. Я не использую ( и не планирую ) ни xmate-hbide, ни hbqt-hbxbp. Считаю продукт сырым и не готовым к использованию. А автору пожелал бы посмотреть не только на xmate, а на CodeLite, Code::Blocks и т.д..

TimTim: Петр пишет: Я не использую ( и не планирую ) ни xmate-hbide, ни hbqt-hbxbp. Считаю продукт сырым и не готовым к использованию. Дело хозяйское! Петр пишет: А автору пожелал бы посмотреть не только на xmate, а на CodeLite, Code::Blocks и т.д.. Да можно и посмотреть, но меня не это интересует. Интересна связка MinGW+Qt+Harbour, а hbide интересен именно с этой точки зрения. Конкретной задачи нет, но может "нарисоваться" задача работы с графическими библиотеками. Вот и пытаюсь собрать и заодно вот научился Harbour 2.0 собирать из исходников. Если кому интересно, то версию 4.5.3 Qt я скачал (ссылка в файле install). Не всякая версия MinGW для него годится. Самая новая, например, почему-то не подошла. С этим еще буду разбираться. Но во время инсталляции Qt инсталлятор сам скачивает MinGW в минимальной требуемой конфигурации. С этой версией Harbour собирается нормально, но пример для Qt все равно не собирается и hbide тоже. Будем искать!

Петр: TimTim пишет: Да можно и посмотреть, но меня не это интересует. Мои пожелания были направлены к Pritpal Bedi , если он хочет создать современный удобный инструмент, то лишние идеи не помешают. Я не знаю откуда у вас такие проблемы, у меня все установилось и "завелось", что называется в пол-пинка. И собрать получается и с MinGW 3.4.5 и с 4.4.1 (SJLJ).



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