Page 1 of 2

Compilar modo consola (Es Urgente)

PostPosted: Wed Sep 12, 2012 10:54 am
by Pedro
Hola a todos

A ver si me tiráis una manita. Quiero compilar un programa viejo de clipper5 (que ya compilé hace un año en modo consola) pero al modificarse el iva tengo que modificarlo y recompilarlo. He consultado el problema que me generó la otra vez y he realizado los pasos que tenía anotado, pero ahora me da un error que antes no me daba.
El error que me da es el siguiente :

Error: Unresolved external '_HB_FUN_HB_GT_WIN' referenced from
C:\XHARBOUR\LIB\VM.LIB|mainstd


Uso verce para compilar , si tenéis un fichero para poder compilar en modo consola o los verce(X).dat modificados os lo agradecería

Re: Compilar modo consola

PostPosted: Wed Sep 12, 2012 12:22 pm
by Carlos Mora
Hola Pedro,

en tu firma no veo que compilador usas, ni que versión. Por lo visto tiene pinta de que la vez anterior compilaste con una versión bastante antigua, que no tiene los mismos módulos de terminal (GT).

No manejo verce, pero tiene pinta que te falta la lib hb-win o algo así

Usando Harbour 2.1 uso las siguientes lib/objs en el enlazado

xhb.lib
hbrtl.lib
hbvm.lib
gtwin.lib
hblang.lib
hbmacro.lib
libmysql.lib
hbwin.lib
hbcommon.lib
hbpp.lib
hbcpage.lib
hbrdd.lib
rddntx.lib
rddcdx.lib
rddfpt.lib
hbsix.lib
hbole.lib
c0w32.obj
psdk\odbc32.lib
psdk\msimg32.lib
cw32.lib
import32.lib
wininet.lib

a ver si te sirve de referencia

Un saludo

Re: Compilar modo consola

PostPosted: Wed Sep 12, 2012 2:07 pm
by Pedro
Hola Carlos

El compilador que uso habitualmente es xHarbour, y es el mismo que viene con la distribución de Fivewin, lo que no me había dado cuenta es que utilicé el mismo ( el 12.01 )
que estoy utilizando ahora, (antes lo utilicé en marzo de este año) y no tuve el problema que se me ha planteado en esta ocasión, el problema de la vez anterior se solucionó cambiando el obj cow32.obj por cox32.obj, pero en esta ocasión no sé porque me dice que no encuentra esa función.

Gracias de todas formas, Carlos

Re: Compilar modo consola (Es Urgente)

PostPosted: Sat Sep 15, 2012 10:11 am
by Pedro
Por favor es urgente, necesito saber por qué no me encuentra esa función para terminar de compilar y enlazar el programa, el cliente me lo reclama ya con urgencia y por más que hago no salgo de ese error.

Re: Compilar modo consola (Es Urgente)

PostPosted: Sat Sep 15, 2012 12:15 pm
by Antonio Linares
Pedro,

En FWH\samples tienes build.bat que sirve para construir aplicaciones en modo consola.

Acabo de probarlo y funciona bien :-)

Re: Compilar modo consola (Es Urgente)

PostPosted: Mon Sep 17, 2012 9:14 am
by Pedro
Estimado Antonio
Dado que no es un prg, sino 34 prgs los que tengo que compilar, usé el bormake que viene en la carpeta make, después de cambiar lo necesario para compilar y algunos errores solucionados, (no sabía como poner todos los obj en varias filas, asi que no tuve más remedio que ponerlos todos en una) se compiló el programa, PEROOOOOOO
no logro que el programa salga en pantalla, lo veo como proceso, pero sin salir en ninguna ventana.

¿alguna solución a esto?

Muchas gracias

Re: Compilar modo consola (Es Urgente)

PostPosted: Mon Sep 17, 2012 7:19 pm
by compubrion
Saludos !

Pedro, te recque uses el hbmk2 para compilar, desde la consola, solo debes ajustar el path para que no tengas lios
Si usas hb + borland

desde la consola
set path=UNIDAD:\HARBOUR\BIN;UNIDAD:\BCC582\BIN

LUEGO hbmk2 -compiler=bcc aplication.hbp

te creas un archivo para compilar

Elej aplication.hbp

Con el siguiente contenido

#
# Archivo Make
#

-n -q0 -static

#Si necesitas buscar fichesros .ch ó .lib las colocas

-Itupath\include
-Ltupath\lib

# Las lib que necesites

-ltulib1 -ltulib2 etc...


# con -o Asignas el nombre al .exe

-oAplication.exe

#Supongamos que tines los funetes en .\Aplication\Source entonces añadimos los .prg a compilar

./source/Modulo1
./source/Modulo2
./source/Modulo3
./source/Modulo4

Re: Compilar modo consola (Es Urgente)

PostPosted: Mon Sep 17, 2012 8:27 pm
by Antonio Linares
Pedro,

No uses #include "FiveWin.ch" y llama a ? "Hola" como prueba

Re: Compilar modo consola (Es Urgente)

PostPosted: Tue Sep 18, 2012 9:00 am
by Pedro
Estimado Antonio

No uso el include fivewin.ch, esto es un programa de clipper5 (ms-dos) compilado originalmente con blinker. que ya fue compilado a primeros de año con verce y fivewin para modo consola, y que ahora no sé por qué motivo me da el error que no encuentra hb_fun_gt_win.
Esto es el inicio del primer prg de la aplicación

Code: Select all  Expand view
#include "INKEY.CH"
#include "SETCURS.CH"

FUNCTION Main

   LOCAL aClrCol[6],aClrMon[6]
   LOCAL cColor  := SetColor( 'N/W,W+/W' )
   Local nCol
   Local nCont
   Local cCodigo
   Local cPant
   Public  membrete,aClr[7],xArea,zArea,cDirect,nCodEmp,cFichero
   Public cEmpresa ,cPoblacion,aEmpresa[0]
* --------------Comprueba si el monitor el color o mono----------------------
* colores (normal,inverso,borde,fondo,no select)
* colores(letra/fondo)

 aClrCol[1] := "B/BG,W+/RB+"  //cPant    *
 aClrCol[2] := "BG/B,W+/R"    //ventana  *
 aClrCol[3] := "BG+/B,W+/BG"  //cdialog  *
 aClrCol[4] := "W+/R,W+/BG"   //calert   *
 aClrCol[5] := "gr+/B,W+/R"   //cven     *
 aClrCol[6] := "W+/RB+,RG+/B" //consult  *

 aClrMon[1] := "N/W,W+/N"   //  "W/N,N/W"
 aClrMon[2] := "N/W,W+/N"   //  "W/N,N/W"
 aClrMon[3] := "N/W,W+/N"   //  "N/W,W/N"
 aClrMon[4] := "N/W,W+/N"   //  "W/N,N/W"
 aClrMon[5] := 'N/W,W+/N'   //  'N/W,W/N'
 aClrMon[6] := 'N/W,W+/N'   //  'w/n,n/w'

 if Iscolor()
    aClr := Aclone(aClrCol)
 else
    aClr := Aclone(aClrMon)
 endif
* ---------------------------------------------------------------------------
   Set bell off
   Set century on
   Set date ITALIAN
   Set dele on
   Set talk off
   Set( _SET_WRAP      , .T. )
   Set( _SET_SCOREBOARD, .F. )
   Set confirm off
   Set exclusive off
   SETMODE(25,80)
*------------------------------------------------------------------------------
While .t.
   Scroll(0,0,24,79,25)
   CajaConc(0,0,24,79,"BG")
   EligeArea()
   If nCodEmp == 0
      exit
   EndIf
   Set Path to (xArea)
   dbCloseAll()
   Inicio()
EndDo
   set default to
   setcolor(cColor)
   dbCloseAll()
   cls
   __quit()
 


Y este es el make que uso para compilar

#Borland make sample, (c) FiveTech Software 2005-2009

HBDIR=c:\harbour
BCDIR=c:\bcc582
FWDIR=c:\fwh

#change these paths as needed
.path.OBJ = D:\CARNES21\EURO\IVABUENO\obj
.path.PRG = D:\CARNES21\EURO\IVABUENO\PRG
.path.CH = $(FWDIR)\include;$(HBDIR)\include;D:\CARNES21\EURO\IVABUENO\INCL
.path.C = .\
.path.rc = .\

#important: Use Uppercase for filenames extensions, in the next two rules!

PRG = \
GESIINIC.PRG \
GESIOPCI.PRG \
GES24100.PRG \
GES24110.PRG \
GES24120.PRG \
GES24200.PRG \
GES24300.PRG \
GES24400.PRG \
GES24500.PRG \
GES24600.PRG \
GES24700.PRG \
GES24800.PRG \
GES24900.PRG \
GES25000.PRG \
GES25100.PRG \
GES25300.PRG \
GES26000.PRG \
GES27000.PRG \
GES27100.PRG \
GES27200.PRG \
GES27300.PRG \
GES27400.PRG \
GES27500.PRG \
GES27510.PRG \
GES27520.PRG \
GES27530.PRG \
GES27540.PRG \
GES27550.PRG \
GES28000.PRG \
GES29000.PRG \
GES29100.PRG \
GES29200.PRG \
GESFUN00.PRG \
GESSCR00.PRG \
LIBRERIA.PRG \

PROJECT : GESIVA.EXE

GESIVA.EXE : $(PRG:.PRG=.OBJ) $(C:.C=.OBJ)
echo off
echo $(BCDIR)\lib\c0W32.obj + > b32.bc
echo OBJ\GESIINIC.OBJ OBJ\GESIOPCI.OBJ OBJ\GES24100.OBJ OBJ\GES24110.OBJ OBJ\GES24120.OBJ OBJ\GES24200.OBJ OBJ\GES24300.OBJ OBJ\GES24400.OBJ OBJ\GES24500.OBJ OBJ\GES24600.OBJ OBJ\GES24700.OBJ OBJ\GES24800.OBJ OBJ\GES24900.OBJ OBJ\GES25000.OBJ OBJ\GES25100.OBJ OBJ\GES25300.OBJ OBJ\GES26000.OBJ OBJ\GES27000.OBJ OBJ\GES27100.OBJ OBJ\GES27200.OBJ OBJ\GES27300.OBJ OBJ\GES27400.OBJ OBJ\GES27500.OBJ OBJ\GES27510.OBJ OBJ\GES27520.OBJ OBJ\GES27530.OBJ OBJ\GES27540.OBJ OBJ\GES27550.OBJ OBJ\GES28000.OBJ OBJ\GES29000.OBJ OBJ\GES29100.OBJ OBJ\GES29200.OBJ OBJ\GESFUN00.OBJ OBJ\GESSCR00.OBJ OBJ\LIBRERIA.OBJ, + >> b32.bc

echo GESIVA.EXE, + >> b32.bc
echo GESIVA.MAP, + >> b32.bc
echo $(FWDIR)\lib\FiveH.lib $(FWDIR)\lib\FiveHC.lib + >> b32.bc
echo $(HBDIR)\lib\hbrtl.lib + >> b32.bc
echo $(HBDIR)\lib\hbvm.lib + >> b32.bc
echo $(HBDIR)\lib\gtgui.lib + >> b32.bc
echo $(HBDIR)\lib\hblang.lib + >> b32.bc
echo $(HBDIR)\lib\hbmacro.lib + >> b32.bc
echo $(HBDIR)\lib\hbrdd.lib + >> b32.bc
echo $(HBDIR)\lib\rddntx.lib + >> b32.bc
echo $(HBDIR)\lib\rddcdx.lib + >> b32.bc
echo $(HBDIR)\lib\rddfpt.lib + >> b32.bc
echo $(HBDIR)\lib\hbsix.lib + >> b32.bc
echo $(HBDIR)\lib\hbdebug.lib + >> b32.bc
echo $(HBDIR)\lib\hbcommon.lib + >> b32.bc
echo $(HBDIR)\lib\hbpp.lib + >> b32.bc
echo $(HBDIR)\lib\hbwin.lib + >> b32.bc
echo $(HBDIR)\lib\hbcpage.lib + >> b32.bc
echo $(HBDIR)\lib\hbct.lib + >> b32.bc
echo $(HBDIR)\lib\xhb.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo $(HBDIR)\lib\rddads.lib + >> b32.bc
rem echo $(HBDIR)\lib\Ace32.lib + >> b32.bc

echo $(BCDIR)\lib\cw32.lib + >> b32.bc
echo $(BCDIR)\lib\uuid.lib + >> b32.bc
echo $(BCDIR)\lib\import32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\odbc32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\nddeapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\iphlpapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\msimg32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\rasapi32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\psapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\gdiplus.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\shell32.lib, + >> b32.bc

REM IF EXIST Alert.res echo Alert.res >> b32.bc
$(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
del b32.bc

.PRG.OBJ:
$(HBDIR)\bin\harbour $< /L /N /W /Oobj\ /I$(FWDIR)\include;$(HBDIR)\include
$(BCDIR)\bin\bcc32 -c -tWM -I$(HBDIR)\include -oobj\$& obj\$&.c

.C.OBJ:
echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
$(BCDIR)\bin\bcc32 -oobj\$& @tmp $&.c
del tmp

rem Alert.res : Alert.rc
rem $(BCDIR)\bin\brc32.exe -r Alert.rc



Intentaré poner lo que me dices al principio del prg a ver si sale algo

Muchas gracias por tu atención

Re: Compilar modo consola (Es Urgente)

PostPosted: Tue Sep 18, 2012 9:02 am
by Antonio Linares
Pedro,

En vez de enlazar gtgui.lib, enlaza gtwin.lib

Re: Compilar modo consola (Es Urgente)

PostPosted: Tue Sep 18, 2012 9:29 am
by Pedro
Antonio
he cambiado la gtgui por la gtwin y me da este error

Error: Unresolved external '_HB_FUN_HB_GT_GUI_DEFAULT' referenced from C:\FWH\LIB\FIVEH.LIB|ERRSYSW


Una cosa más. No me aparece la ventana de MSDOS con el programa o sin él

Re: Compilar modo consola (Es Urgente)

PostPosted: Tue Sep 18, 2012 9:42 am
by Antonio Linares
Pedro,

Que versión de Harbour estás usando ?

Re: Compilar modo consola (Es Urgente)

PostPosted: Tue Sep 18, 2012 10:46 am
by Pedro
Esto es lo que sale cuando compilo

Harbour 3.1.0dev (Rev. 17222)
Copyright (c) 1999-2012, http://harbour-project.org/


Este harbour fue bajado de fivetech y está nombrado como harbour_bcc582_20120127.zip

Re: Compilar modo consola (Es Urgente)

PostPosted: Tue Sep 18, 2012 10:49 am
by Pedro
compubrion wrote:Saludos !

Pedro, te recque uses el hbmk2 para compilar, desde la consola, solo debes ajustar el path para que no tengas lios
Si usas hb + borland

desde la consola
set path=UNIDAD:\HARBOUR\BIN;UNIDAD:\BCC582\BIN

LUEGO hbmk2 -compiler=bcc aplication.hbp

te creas un archivo para compilar

Elej aplication.hbp

Con el siguiente contenido

#
# Archivo Make
#

-n -q0 -static

#Si necesitas buscar fichesros .ch ó .lib las colocas

-Itupath\include
-Ltupath\lib

# Las lib que necesites

-ltulib1 -ltulib2 etc...


# con -o Asignas el nombre al .exe

-oAplication.exe

#Supongamos que tines los funetes en .\Aplication\Source entonces añadimos los .prg a compilar

./source/Modulo1
./source/Modulo2
./source/Modulo3
./source/Modulo4


Disculpa que no te haya contestado, compañero compubrion, ¿podrías enviarme a mi correo un ejemplo de como compilar con el hbmk2 y un fichero de ejemplo?
Muchas gracias

Re: Compilar modo consola (Es Urgente)

PostPosted: Tue Sep 18, 2012 12:29 pm
by MarioG
Pedro wrote:Antonio
he cambiado la gtgui por la gtwin y me da este error

Error: Unresolved external '_HB_FUN_HB_GT_GUI_DEFAULT' referenced from C:\FWH\LIB\FIVEH.LIB|ERRSYSW


Una cosa más. No me aparece la ventana de MSDOS con el programa o sin él


Lo que no entiendo es porque si estas tratando de compilar en modo consola tenes un mensaje como este.
En las aplicaciones que desarrollé en modo DOS nunca inclui las lib de fivewin.
No andará por ahi el conflicto?