В 90-х годах писал на Clipper 5.1 и вот уже лет 10 не пишу. Встретил людей, для которых
когда-то сделал одну прогу, которая до сих пор пашет. Они просят переписать (и дополнить) её под Win XP. Я им ничего конкретного не пообещал. Сказал, что многое уже
подзабыл и для освоения (профессионально) нового яз-а пограм-я нужно время. «Ты подумай, мы тебя не торопим» - сказали они мне и на этом мы расстались.
Та случайная встреча и знакомство с вашим сайтом разбудили во мне желание вновь писать (или хотя бы переписать старые) программы. Я думаю, в моём положении, Harbour/xHarbour это то, что даст вторую жизнь моим старым программам. Благо исходники сохранились.
После столь долгого перерыва в программировании прошу вашей помощи. Не откажите.
Не судите строго за глупые вопросы.
И так. Это мой старый bat-файл:
@echo off
set path=c:\clip5\bin
set lib=c:\clip5\lib
set include=c:\clip5\include
set obj=c:\clip5\obj
clipper a_1 /n /a /b
clipper a_2 /n /a /b
if not errorlevel 1 rtlink file a_1.obj,a_2.obj,dbfsix.obj output p_1 library dbfsix,clipper,ct150
del *.obj
____________________________
А вот что такое а_1 и а_2
a_1.prg
#include "dbfsix2.ch"
PROCEDURE MAIN1()
SetRDD("DBFSIX")
mai1()
RETURN
#include "мой.ch"
#include "PROG_01.PRG" => mai1()
#include "PROG_02.PRG"
.
.
.
#include "PROG_25.PRG"
a_2.prg
#include "dbfsix2.ch"
PROCEDURE MAIN2()
SetRDD("DBFSIX")
mai2()
return NIL
#include "PROG_26.PRG" => mai2()
#include "PROG_27.PRG"
.
.
.
#include "PROG_50.PRG"
А это bat-файл для Harbour:
set HB_BIN_INSTALL=d:\harbour\bin
set HB_LIB_INSTALL=d:\harbour\lib\
set HB_INC_INSTALL=d:\harbour\include\
%HB_BIN_INSTALL%\harbour aer_1.prg -n -i%HB_INC_INSTALL%
%HB_BIN_INSTALL%\harbour aer_2.prg -n -i%HB_INC_INSTALL%
d:\borland\bcc55\bin\bcc32 -O2 -d -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% aer_1.c aer_2.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib common.lib codepage.lib d:\harbour\lib\hbsix.lib с:\clip5\lib\dbfsix.lib
d:\borland\bcc55\bin\ilink32 -Gn d:\radk\clip5\obj\dbfsix.obj aer_1.obj aer_2.obj, aaeerr.exe, , d:\harbour\lib\debug.lib d:\harbour\lib\lang.lib d:\harbour\lib\macro.lib d:\harbour\lib\pp.lib d:\harbour\lib\dbfntx.lib d:\harbour\lib\dbfcdx.lib d:\harbour\lib\codepage.lib d:\harbour\lib\libct.lib d:\harbour\lib\harbour-b32.lib d:\harbour\lib\rtl.lib d:\harbour\lib\hbsix.lib с:\clip5\lib\dbfsix.lib
До использовиния ilink32 пример батника взят с сайта А. Кресина.
После выполнения этого батника, вот что получаю:
D:\>d:\harbour\bin\harbour a_1.prg -n -id:\harbour\include\
Harbour Beta build 0.99-3 Intl.
Copyright 1999-2007,
http://www.harbour-project.org/ Compiling 'a_1.prg'...
Lines 11842, Functions/Procedures 240
Generating C source output to 'a_1.c'... Done.
D:\>d:\harbour\bin\harbour a_2.prg -n -id:\harbour\include\
Harbour Beta build 0.99-3 Intl.
Copyright 1999-2007,
http://www.harbour-project.org/ Compiling 'a_2.prg'...
Lines 4863, Functions/Procedures 86
Generating C source output to 'a_2.c'... Done.
D:\>d:\borland\bcc55\bin\bcc32 -O2 -d -Id:\harbour\include\ -Ld:\harbour\lib\ a_1.c a_2.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib common.lib codepage.lib d:\harbour\lib\hbsix.lib с:\clip5\lib\dbfsix.lib
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
a_1.c:
a_2.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Access violation. Link terminated.
D:\>d:\borland\bcc55\bin\ilink32 -Gn с:\clip5\obj\dbfsix.obj a_1.obj a_2.obj, aaeerr.exe, , d:\harbour\lib\debug.lib d:\harbour\lib\lang.lib d:\harbour\lib\macro.lib d:\harbour\lib\pp.lib d:\harbour\lib\dbfntx.lib d:\harbour\lib\dbfcdx.lib d:\harbour\lib\codepage.lib d:\harbour\lib\libct.lib d:\harbour\lib\harbour-b32.lib d:\harbour\lib\rtl.lib d:\harbour\lib\hbsix.lib d:\clip5\lib\dbfsix.lib
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Unsupported 16-bit segment(s) in module \drivers\sex\ver1-1\asm\sixdyn.asm
Если я правильно понял – ему не нравится dbfsix.lib. Но я использую в своих прогах
функции этой библиотеки.
И мне ещё не понятно, для чего дважды (в bcc32 и ilink32)прописывать необходимые библ-ки.
Что делаю неправильно? Как правильно составить батник для сборки прог-м?