Форум » GUI » MiniGui + MinGw » Ответить

MiniGui + MinGw

Andrey: gfilatov2002 пишет: [quote]Можно использовать версию 4.6.1 из поставки ночного релиза Харбора, который располагается по адресу http://sourceforge.net/projects/harbour-project/files/binaries-windows/nightly/ [/quote] Скачал последнию версию MiniGui 2.0.7 - 2012.02.14 Скачал MinGw 4.6.1 Созданы папки Z:\HMG\harbour Z:\HMG\minigui Z:\HMG\mingw (перенес из папки Z:\hb30\comp\mingw) Подправил Z:\HMG\minigui\buildapp.bat @echo off SET HMGPATH=Z:\hmg SET PATH=%HMGPATH%\harbour\bin;%HMGPATH%\mingw\bin;%PATH% SET HMGRPATH=Z:\hmg\minigui запускаю Z:\HMG\minigui\buildapp.bat выдает ошибку: Z:\hmg\mingw\bin\nm.exe: 'C:/WINDOWS/TEMP/hbmk_4mkti2.dir/.c': No such file Что сделано не так ???

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

gfilatov2002: Andrey пишет: Что сделано не так ? Andrey пишет: запускаю Z:\HMG\minigui\buildapp.bat 1) Зачем запускать этот батник без параметра <имя файла> ? 2) Сначала надо пересобрать библиотеку для MinGw 4.6.1 (по умолчанию она собрано для версии 4.5.2 ), запустив BuildLib.bat из папки SOURCE. А теперь можно открыть папку minigui\samples\MAINDEMO и собрать тестовый пример, запустив батник build.bat следующего содержания: call ..\..\buildapp.bat demo

Andrey: gfilatov2002 пишет: 1) Зачем запускать этот батник без параметра <имя файла> ? Извиняюсь. Не правильно написал. Запускаю Z:\HMG\minigui\Samples\MAINDEMO\build.bat Z:\HMG\minigui\Samples\MAINDEMO>call ..\..\buildapp.bat demo Harbour 3.1.0dev (Rev. 17205) Copyright (c) 1999-2012, http://harbour-project.org/ Compiling 'demo.prg'... Lines 21623, Functions/Procedures 46 Generating C source output to 'C:\WINDOWS\TEMP\hbmk_97mb4t.dir\demo.c'... Done. demo.prg:1615:1: fatal error: error writing to -: Invalid argument compilation terminated. C:/WINDOWS/TEMP/hbmk_jyngd3.c:26:1: fatal error: error closing -: Broken pipe compilation terminated. hbmk2: Error: Running C/C++ compiler. 1 gcc.exe -c -O3 -march=i586 -mtune=pentiumpro -fomit-frame-pointer -W -Wall -pipe -IZ:/hmg/harbour/includ e -IZ:/hmg/minigui/include -IZ:/HMG/minigui/Samples/MAINDEMO C:/WINDOWS/TEMP/hbmk_97mb4t.dir/demo.c C:/WI NDOWS/TEMP/hbmk_jyngd3.c

Andrey: gfilatov2002 пишет: 2) Сначала надо пересобрать библиотеку для MinGw 4.6.1 (по умолчанию она собрано для версии 4.5.2 ), запустив BuildLib.bat из папки SOURCE. Библиотеку собрал (Z:\HMG\minigui\Lib\minigui.lib) !!!


Andrey: Так как все таки собрать тестовые примеры ? В чем моя ошибка ? Запускаю Z:\HMG\minigui\Samples\MAINDEMO\build.bat Z:\HMG\minigui\Samples\MAINDEMO>call ..\..\buildapp.bat demo Harbour 3.1.0dev (Rev. 17205) Copyright (c) 1999-2012, http://harbour-project.org/ Compiling 'demo.prg'... Lines 21623, Functions/Procedures 46 Generating C source output to 'C:\WINDOWS\TEMP\hbmk_97mb4t.dir\demo.c'... Done. demo.prg:1615:1: fatal error: error writing to -: Invalid argument compilation terminated. C:/WINDOWS/TEMP/hbmk_jyngd3.c:26:1: fatal error: error closing -: Broken pipe compilation terminated. hbmk2: Error: Running C/C++ compiler. 1 gcc.exe -c -O3 -march=i586 -mtune=pentiumpro -fomit-frame-pointer -W -Wall -pipe -IZ:/hmg/harbour/includ e -IZ:/hmg/minigui/include -IZ:/HMG/minigui/Samples/MAINDEMO C:/WINDOWS/TEMP/hbmk_97mb4t.dir/demo.c C:/WI NDOWS/TEMP/hbmk_jyngd3.c

gfilatov2002: Andrey пишет: Так как все таки собрать тестовые примеры ? Попробуем сделать это "от печки" - с самого начала: 1-й шаг. Скачать последнюю сборку для компилятора mingw с сайта http://hmgextended.com (папка CONTRIB). 2-й шаг. Распаковать содержимое архива на диск C: с сохранением структуры каталогов. 3-й шаг. Скачать официальный релиз 39 по этому адресу и установить его на любой доступный диск (нам потребуется каталог mingw из этого релиза). 4-й шаг. Скопировать содержимое папки mingw из официального релиза 39 в пустую папку C:\hmg\mingw, которая была создана при распаковке архива с сайта hmgextended.com 5-й шаг. Запустить батник C:\minigui\Samples\MAINDEMO\build.bat и собрать тестовый пример для проверки работоспособности этой сборки. Если проблема не решена после этих 5-ти шагов, то ...

Andrey: Спасибо БОЛЬШОЕ Григорий ! Без твоей помощи, ничего и не получается.... Буду пробовать завтра... О результатах сообщу.

Andrey: Под Win7 собралось без проблем, сразу. Видать дело было в компиляторе, не оттуда скачивалось и не та библиотека собиралась... Короче не те руки собирали, то бишь мои .... Ну потом с этим разбиремся. И после этого на ХР тоже нормально собрал примеры. Спасибо Григорий !!! Примеры собрались, но вопросы остались: 1) Как на одном диске разместить библиотеки MiniGui для BCC и MinGW ? Я сделал пока так: для MinGW Z:\HMG\harbour Z:\HMG\mingw Z:\HMG\minigui для BCC Z:\BCC55 Z:\MiniGui 2) Как сделать файл проекта чтоб можно было собирать разными компиляторами (и под разные платформы Win32 и Win64 - на будущее) ? Вот мой рабочий проект: # Включить multi/single-thread Harbour VM #-mt # Включить debug-info # -prgflag=-b # Если нужно, можно создать *.ppo при компиляции #-prgflag=-p # Флаги компилятора BCC #-cflag=-w-8075 # Incremental-режим компиляции -inc # папка где будут все *.obj -workdir=OBJ # Имя EXE-модуля -oDeskTop.exe # включить путь к MiniGui и своим *.ch и *.fmg -incpath=Z:\MiniGUI\Include -incpath=Source # перечисляем все *.prg Source\DeskTop.prg Source\Licence.prg Source\inifile.prg Source\run_prg.prg Source\themes.prg Source\h_menu.prg Source\users.prg Source\version.prg Source\myExit.prg Source\_controlpos3_.prg # Ресурсы resource\DeskTop.rc resource\DeskTop1.rc resource\DeskTop2.rc resource\DeskTop3.rc # Пути к основным и добавочным *.lib -lminigui -LZ:\MiniGUI\LIB\

Andrey: Всем привет. Пробую делать простой проект на 2-компилятора MiniGui для BCC и MinGW. Скачал последний hmg233-mingw.exe для MinGW Z:\HMG\harbour Z:\HMG\mingw Z:\HMG\minigui для BCC Z:\BCC55 Z:\MiniGui Для MinGW сделал отдельный bat-ник: SET HMGPATH=Z:\hmg SET PATH=%HMGPATH%\harbour\bin;%HMGPATH%\mingw\bin;%PATH% SET HMGRPATH=Z:\hmg\minigui Z:\hmg\harbour\bin\hbmk2 demo2mingw.hbp Описание demo2mingw.hbp : # Incremental-режим компиляции -inc # папка где будут все *.obj -workdir=OBJ2 # Имя EXE-модуля -oDemo2.exe # включить путь к MiniGui и своим *.ch и *.fmg -incpath=Z:\HMG\MiniGUI\Include # перечисляем все *.prg Demo.prg # Ресурсы Demo2.rc # Пути к основным и добавочным *.lib -lminigui -lcalldll -lversion -lmsvfw32 -LZ:\HMG\MiniGUI\LIB\ При сборке выдает ошибку: hbmk2[demo2mingw]: Warning: Non-portable output filename: '-oDemo2.exe' in demo2mingw.hbp:26. Delete '.exe' extension. hbmk2: Compiling resources... hbmk2: Compiling... hbmk2: Linking... Demo2.exe OBJ2/Demo.o:Demo.c:(.data+0x88): undefined reference to `HB_FUN_HB_SETCODEPAGE' Z:/HMG/MiniGUI/LIB/libminigui.a(h_init.o):h_init.c:(.data+0x1e8): undefined reference to `HB_FUN_HB_ SETCODEPAGE' collect2: ld returned 1 exit status hbmk2[demo2mingw]: Error: Running linker. 1 gcc.exe OBJ2/Demo.o OBJ2/_hbmkaut_Demo.o OBJ2/Demo2.reso -Wl,--nxcompat -Wl,--dynamicbase -mconsol e -Wl,--start-group -lminigui -lcalldll -lversion -lmsvfw32 -lhbextern -lhbdebug -lhbvm -lhbrtl -lhb lang -lhbcpage -lgtcgi -lgtpca -lgtstd -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddnt x -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lhbmainst d -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -liphlpapi -lwinspool -lcomctl32 -lcomdlg32 -lshel l32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre -lhbzlib -Wl,--end-group -oDemo2.exe -LZ:/hmg/harbour/lib -LZ:/HMG/MiniGUI/LIB hbmk2: Error: Referenced, missing, but unknown function(s): HB_SETCODEPAGE() Что еще нужно исправить/добавить, чтобы заработало ?

Pasha: Andrey пишет: OBJ2/Demo.o:Demo.c:(.data+0x88): undefined reference to `HB_FUN_HB_SETCODEPAGE' Если не трогать HMG, то можно добавить в свой prg такую функцию: Function hb_setCodePage( cCdp ) Return hb_cdpSelect( cCdp )

Andrey: Pasha пишет: Если не трогать HMG, то можно добавить в свой prg такую функцию: А русский язык не пропадет ? Собралось. Но если я добавлю функцию DELETEFILE() в свой исходник, то опять не собирается: hbmk2: Compiling... hbmk2: Linking... Demo2.exe OBJ2/Demo.o:Demo.c:(.data+0x1c8): undefined reference to `HB_FUN_DELETEFILE' collect2: ld returned 1 exit status hbmk2[demo2mingw]: Error: Running linker. 1 Что-то у меня не работает MinGw.... Куда "копать" ? Может надо в свой bat-ник добавить эти строки (как в Z:\HMG\minigui\buildapp.bat): echo #define HMGRPATH %HMGRPATH%\RESOURCES > _hmg_resconfig.h COPY /b %HMGRPATH%\resources\hmg.rc+%1.rc+%HMGRPATH%\resources\filler _temp.rc >>NUL windres -i _temp.rc -o _temp.o HBMK2 %1 %2 %3 %4 %5 %6 %7 %8 %HMGRPATH%\minigui.hbc -D__CALLDLL__ -run А файл в Z:\HMG\minigui\RESOURCES\filler всего 2 байта... И зачем он ? Может у меня неправильно установился hmg233-mingw.exe ?

Andrey: Разобрался как собирать через bat-ник. Нужно делать его похожим (как в Z:\HMG\minigui\buildapp.bat): SET HMGPATH=Z:\hmg SET PATH=%HMGPATH%\harbour\bin;%HMGPATH%\mingw\bin;%PATH% SET HMGRPATH=Z:\hmg\minigui echo #define HMGRPATH %HMGRPATH%\RESOURCES > _hmg_resconfig.h COPY /b %HMGRPATH%\resources\hmg.rc+demo2.rc+%HMGRPATH%\resources\filler _temp.rc >>NUL windres -i _temp.rc -o _temp.o Z:\hmg\harbour\bin\hbmk2 demo2mingw.hbp %HMGRPATH%\minigui.hbc -D__CALLDLL__ -run del _hmg_resconfig.h del _temp.* Программа собирается нормально: Но так как привык уже собирать проекты через .hbp, то опять непонятка. Собираю свой проект командой: z:\HMG\MiniGui\buildapp.bat demo2mingw.hbp В demo2mingw.hbp задан конкретный ресурсный файл: # Ресурсы Demo2.rc Получаю рабочий ехе-ник, но без картинок и других ресурсов. Почему ? Что нужно подправить в buildapp.bat ?

Pasha: Andrey пишет: Но если я добавлю функцию DELETEFILE() в свой исходник, то опять не собирается: DeleteFile - это функция из ct. В скрипт сборки *.hbp надо добавить строчку: -lhbct С русским языком будет все в порядке. В hmg для mingw есть ненужная ссылка на функцию hb_setCodePage, которая в Harbour давно переименована в hb_cdpSelect И этот вопрос решается добавлением функции Function hb_setCodePage( cCdp ) Return hb_cdpSelect( cCdp )

Andrey: Pasha пишет: DeleteFile - это функция из ct. В скрипт сборки *.hbp надо добавить строчку: Спасибо. Но с этим разобрался. Нужно компилировать свой проект командой: z:\HMG\MiniGui\buildapp.bat demo2mingw.hbp Тогда все собирается, кроме ресурсов. Вопрос описанный выше остается...

Pasha: Andrey пишет: Получаю рабочий ехе-ник, но без картинок и других ресурсов. Почему ? Что нужно подправить в buildapp.bat ? Чтобы пользоваться buildapp.bat, необходимо, чтобы файл ресурсов назывался так же, как и основная программа, так как в этом батнике есть строка: COPY /b %HMGRPATH%\resources\hmg.rc+%1.rc+%HMGRPATH%\resources\filler _temp.rc >>NUL т.е. надо просто переименовать demo2.rc в demo.rc

Andrey: Pasha пишет: т.е. надо просто переименовать demo2.rc в demo.rc Получается, то что указывается в demo2mingw.hbp - по барабану: # Ресурсы Demo2.rc После переименовки, тоже нет ресурсов. Буду делать отдельный тест...

Pasha: Можно просто в demo2.rc в вставить в начале файла строки из hmg.rc, и собирать программу стандартным способом с помощью hbmk2

Andrey: Вот сделал отдельный тест - http://files.mail.ru/1DB67EF56BED4B7987A6D0335CF58C6A Сборка через Compile-MinGw.bat - все ресурсы на месте. Сборка через z:\HMG\MiniGui\buildapp.bat demo2mingw.hbp - ресурсов нет.

Dima: Andrey пишет: Сборка через z:\HMG\MiniGui\buildapp.bat demo2mingw.hbp - ресурсов нет Шо то не то творишь ;) Вот пример , проверил все собирается с ресурсами Батник для сборки [pre2] set path=C:\MinGW\bin\ c:\hb32mingw\bin\hbmk2 sklad.hbp [/pre2] sklad.hbp [pre2] C:\hb32mingw\contrib\hbct\hbwin.hbc -LC:\MinGW\lib\ -workdir=obj -otest.exe -inc -gtwvt -gui t.prg sklad.rc [/pre2] sklad.rc [pre2] MainIcon ICON "1370007531_128540.ico" LOGO1 CUSTOM "l2.bmp" LOGO2 CUSTOM "l3.bmp" LOGO4 CUSTOM "hose.bmp" [/pre2] t.prg [pre2] proc main WAPI_ShellExecute(,"open","notepad",,,1) return [/pre2] Содержимое папки OBJ после сборки [pre2] sklad.reso t.c t.o _hbmkaut_t.c _hbmkaut_t.o [/pre2] ВОПРОСЫ ?

Andrey: Dima пишет: Шо то не то творишь ;) А мой пример собирается ?

Dima: Andrey пишет: А мой пример собирается ? я его не смотрел , так как показал тебе простейший и работающий свой пример , от А до Я

Andrey: Получилось собрать пример, только уж очень правило закавыристое: имя.prg и имя.hbp и имя.rc - должно быть ОДИНАКОВЫМ ! Тогда сборка проекта будет такой: z:\HMG\MiniGui\buildapp.bat demo demo.hbp Только вот лог не могу понять ? hbmk2: Compiling... hbmk2: Linking... Demo.exe hbmk2[demo]: Warning: Non-portable output filename: '-oDemo.exe' in demo.hbp:14. Delete '.exe' extension. hbmk2: Compiling Harbour sources... Harbour 3.2.0dev (r1403161922) Copyright (c) 1999-2014, http://harbour-project.org/ Compiling 'Demo.prg'... Lines 20873, Functions/Procedures 8 Generating C source output to 'OBJ\Demo.c'... Done. hbmk2: Compiling... hbmk2: Linking... Demo.exe z:/hmg/mingw/bin/../lib/gcc/mingw32/4.6.1-dw2/../../../../mingw32/bin/ld.exe: cannot open output file Demo.exe: Permission denied collect2: ld returned 1 exit status hbmk2[demo]: Error: Running linker. 1 gcc.exe OBJ/Demo.o OBJ/_hbmkaut_Demo.o W:/HB_Project/Resource_Demo3MinGw/_temp.o OBJ/Demo.reso -Wl ,--nxcompat -Wl,--dynamicbase -mwindows -Wl,--start-group -lminigui -lversion -lmsvfw32 -ltsbrowse - ladordd -lcalldll -lhbprinter -lminiprint -lhbct -lhbmisc -lhbtip -lhbziparc -lhbmzip -lminizip -lhb win -lxhb -lvfw32 -lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtpca -lgtstd -lg twin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbh sx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lhbmainwin -lkernel32 -luser32 -lgdi32 -ladvapi32 - lws2_32 -liphlpapi -lwinspool -lcomctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinm m -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre -lhbzlib -Wl,--end-group -oDemo.exe -LZ:/hmg/harb Вот почему пишет ошибку ? hbmk2[demo]: Error: Running linker. 1 Хотя ехе-ник собирается нормально !

Dima: Andrey пишет: только уж очень правило закавыристое: имя.prg и имя.hbp и имя.rc - должно быть ОДИНАКОВЫМ я же показал в примере выше что это не так ;)

Andrey: Dima пишет: я же показал в примере выше что это не так ;) Да все так ! Просто я у себя под BCC имею разные имена....



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