Форум » [x]Harbour » xHarbour and Microsoft C » Ответить

xHarbour and Microsoft C

Andrey: Работаю на xHarbour 1.2.3 Intl. (SimpLex) (Build 20130903) с BCC 5.5.1 Нужно заменить компилятор на Microsoft C. В папке :\xHarbour есть файл make_vc.bat, в нем описание для разных компиляторов с: Microsoft Visual Studio 11.0 по: VC6 Вопрос первый - каким компилятором можно пользоваться не нарушая лицензию ? Вопрос второй - каким компилятором лучше пользоваться для своих программ для систем: WinXP/2000/2003/7/8 ? Вопрос третий - какие dll (от MS VC ) придется добавлять для своих программ ?

Ответов - 19

Pasha: Судя по ссылке: http://www.thefreecountry.com/compilers/cpp.shtml бесплатно можно использовать Visual Studio 2013 Express, скачать ее можно по адресу: http://www.visualstudio.com/downloads/download-visual-studio-vs выбрать версию Windows Desktop Ограничение для бесплатного использования такие: this version of Visual Studio Express requires you to register for a Microsoft account, and associate your installation with this account, otherwise you will only be able to run the program for 30 days. т.е. нужен ms account, иначе можно использовать только 30 дней. Что такое ms account - черт его знает, я с ms предпочитаю не связываться. Как собирать xHarbour для VS 2013 Express - надо пробовать.

Andrey: Скачал Visual С++ 2008 Express SP1 (посоветовали это, чтобы не тащить dll с VC2013 для ХР) Зарегистрировался. На сайте у микрософт написано: Коммерческое использование Visual Studio Express Продукты Visual Studio Express доступны бесплатно и могут использоваться в коммерческих и производственных целях в соответствии с условиями лицензии каждого продукта. Например, можно использовать Express для Windows, чтобы создавать приложения и отправлять их для продажи в Магазин Windows. Скачал с сайта xharbour-1.2.1.src.zip и xharbour-1.2.1.src.contrib.zip Прописал в переменных среды CC_DIR=C:\Program Files\Microsoft Visual Studio 9.0\vc Скомпилировал библиотеки make_vc.bat - нормально ! А BISON - нужно было устанавливать ? Без него прошло... Тестовые единичные примеры компилируются на ура. Поймал затык на hbmake.exe - у меня на нем все задачи собираются. Компилирует для BCC55 и сборку пытается сделать тоже через BCC55... Может они криво сделали эту утилиту для MC ? Смотрю файл :\xHarbour\bin\harbour.cfg CC=BCC32 CFLAGS= -c -D__EXPORT__ -IZ:\xHARBOUR\include -d -LZ:\xHARBOUR\lib VERBOSE=YES DELTMP=YES Удаляю его, все равно создает его заново для CC=BCC32 Блин, эти MS достали, но пока деваться некуда.... Очень нужно собрать проект под MSC. Помогите пожалуйста заставить hbmake.exe собирать под MSC....

Andrey: Вот еще баг: HbMake v1.20 - xHarbour Make Utility Copyright (C) 2000-2009 xHarbour project - http://www.xharbour.org Syntax: hbmake <makefile> [switches] Switches: -b Use Bcc as the C compiler. This options is default under Win32 -g Use Gcc as the C compiler. This options is default under OS/2 -v Use MSVC as the C compiler hbmake TEST.bc -b = собирается hbmake TEST.bc -g = собирается hbmake TEST.bc -v = НЕ собирается, выдает ошибку:


Andrey: Заменил в первой строке файла TEST.bc #BCC на #MSVC Теперь hbmake TEST.bc не запускается, нужно делать так: hbmake TEST.bc -v Проект запускается, но ехе-ник не собирается все равно, выдает уже другую ошибку:

shalom276: Andrey День добрый! Вам удалось решить проблему с компилятором VC? Тоже стоит аналогичная проблема...

Andrey: shalom276 пишет: Вам удалось решить проблему с компилятором VC? Нет. Использовать HbMake не получилось. В системном path ОБЯЗАТЕЛЬНО нужно выкинуть bcc и первым поставить C:\Program Files\Microsoft Visual Studio 9.0\bin Далее написал простой bat-ник который тупо, каждый раз компилирует все *.prg Свой ехе-ник получался. Обломался на сторонних библиотеках (FastReport и еще какой-то). Если интересен bat-ник то привожу его. echo off setlocal enabledelayedexpansion set XHB_ROOT=Z:\xHarbour set XHB_LIBS=%XHB_ROOT%\debug.lib %XHB_ROOT%\vm.lib %XHB_ROOT%\rtl.lib %XHB_ROOT%\zlib.lib %XHB_ROOT%\pcrepos.lib %XHB_ROOT%\gtwin.lib %XHB_ROOT%\lang.lib %XHB_ROOT%\rdd.lib %XHB_ROOT%\macro.lib %XHB_ROOT%\pp.lib %XHB_ROOT%\dbffpt.lib %XHB_ROOT%\dbfntx.lib %XHB_ROOT%\dbfcdx.lib %XHB_ROOT%\hsx.lib %XHB_ROOT%\hbsix.lib %XHB_ROOT%\sixcdx.lib %XHB_ROOT%\common.lib %XHB_ROOT%\ct.lib %XHB_ROOT%\tip.lib set SYSTEM_LIBS=shell32.lib user32.lib winspool.lib ole32.lib oleaut32.lib ws2_32.lib kernel32.lib gdi32.lib comctl32.lib comdlg32.lib advapi32.lib set OUTPUT_FILENAME=..\application.exe set WRK_DIR=%CD% set SRC_DIR=%CD%\PRG set TMP_DIR=%CD%\TEMP set OBJS= copy %SRC_DIR%\*.PRG %TMP_DIR% copy %SRC_DIR%\*.CH %TMP_DIR% copy %SRC_DIR%\*.H %TMP_DIR% copy %SRC_DIR%\*.C %TMP_DIR% cd %TMP_DIR% echo. > %WRK_DIR%\harbour.log FOR /f "tokens=*" %%G IN ('DIR /b %TMP_DIR%\*.PRG') DO ( echo Generation PRG: %%G >> %WRK_DIR%\harbour.log echo harbour %TMP_DIR%\%%G -n -q0 -gc -i%XHB_ROOT%\include -i%TMP_DIR% >> %WRK_DIR%\harbour.log harbour %TMP_DIR%\%%G -n -q0 -gc -i%XHB_ROOT%\include -p -w3 >> %WRK_DIR%\harbour.log echo. >> %WRK_DIR%\harbour.log echo. >> %WRK_DIR%\harbour.log echo. >> %WRK_DIR%\harbour.log echo "Generating C file - %%G" ) FOR /f "tokens=*" %%C IN ('DIR /b %TMP_DIR%\*.c') DO ( echo "Including generated obj file - %%OBJ' set OBJS=!OBJS! %%C ) ECHO %OBJS% call vcvars32.bat cl -TP -W3 -I%XHB_ROOT%\include %OBJS% /link %XHB_ROOT%\obj\vc\mainstd.obj /subsystem:CONSOLE /FORCE:MULTIPLE %XHB_LIBS% %SYSTEM_LIBS% /out:%WRK_DIR%\%OUTPUT_FILENAME% > %WRK_DIR%\compile.log

shalom276: Спасибо! У меня компилирует без удаления BCC из системного патча, но трабл при сборке... Ругается на mainstd.obj, который у Вас в строке тоже присутствует.. Где его взять? У Вас в каком составе VS? Нужен SDK?

Andrey: shalom276 пишет: угается на mainstd.obj, который у Вас в строке тоже присутствует.. Этот файл лежит по пути Z:\xHarbour.1.2.1-MSVC\obj\vc т.е. стандартная поставка хХарбора.

santy: shalom276 пишет: Спасибо! У меня компилирует без удаления BCC из системного патча, но трабл при сборке... Ругается на mainstd.obj, который у Вас в строке тоже присутствует.. Где его взять? У Вас в каком составе VS? Нужен SDK? При создании исполняемого модуля в xHarbour для консольного добавить в проэкт файл mainstd.obj, при создании GUI приложения добавить файл mainwin.obj, при создании DLL файла maindllh.obj или maindlle.obj. Эти файли лежат в каталоге (пример) ...\xHarbour_10020\obj\vc_2010\ - ...\xHarbour_10020\obj\vc_2010\dll\

shalom276: http://sourceforge.net/projects/xharbour/files/Binaries%20for%20Windows%20MSVC%209/1.20.01/ Скачиваю по этой ссылке бинарник - в нем нет католога OBJ... Что не так? Собирать из сырцов? Где взять нужный дистрибутив?

Andrey: Привет santy ! А как собрать проект под MS с помощью hbmake ? У меня не получается....

shalom276: Andrey Андрей Вы где скачивали дистрибутив?

Andrey: shalom276 пишет: Скачиваю по этой ссылке бинарник - в нем нет католога OBJ... Что не так? Собирать из сырцов? Где взять нужный дистрибутив? По шагам (см. выше): Скачал с сайта xharbour-1.2.1.src.zip и xharbour-1.2.1.src.contrib.zip Прописал в переменных среды CC_DIR=C:\Program Files\Microsoft Visual Studio 9.0\vc Скомпилировал библиотеки make_vc.bat - нормально ! (т.е. надо запустить файл make_vc.bat и библиотеки соберутся !)

shalom276: AndreyФайлы распаковал, запустил make_vc.bat, создался каталог VC\Obj с объектниками, но файла maindllh.obj в нем нет... Что опять не так?

shalom276: У меня стоит Visual Studio 2005 - имеет значение? Получается библиотеки собрались, но не все...

Andrey: shalom276 пишет: но файла maindllh.obj в нем нет... Что опять не так? У меня тоже нет.

shalom276: Andrey пишет: У меня тоже нет. Опечатка файла mainstd.obj? а он требуется при сборке...

santy: shalom276 пишет: Файлы распаковал, запустил make_vc.bat, создался каталог VC\Obj с объектниками, но файла maindllh.obj в нем нет... Что опять не так? make_vc.bat запустите с параметром ALL : make_vc.bat ALL - создаст CORE, core dll, contrib. shalom276 пишет: У меня стоит Visual Studio 2005 - имеет значение? Получается библиотеки собрались, но не все... Не имеет значения. Главное укажите пути правильные в бат файле.

shalom276: Andrey пишет: А BISON - нужно было устанавливать ? Без него прошло... Поставил Visual С++ 2008, запустил make_vc.bat - то же самое.. Поставил Бизон - и все obj и lib скомпилировались.. Все собирается.. После прочтения поста Santy запустил make_vc.bat ALL - дополнительно собрались DLL и библиотеки Contrib. Благодарю за советы!!!



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