FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Crear librería: no encuentra archivo *.cpp
Posts: 139
Joined: Sun Apr 23, 2006 09:00 AM
Crear librería: no encuentra archivo *.cpp
Posted: Tue Apr 20, 2010 04:29 PM

Hola.
Utilizo LIB.EXE. Estoy intentando crear mis librerias en FWH a partir de los prg que utilizo en FW195. Harbour me compila el prg sin problema pero: ¿cómo deber ser la línea para crear el obj con BCC32? Con las opciones que le estoy poniendo (las mismas que utiliza buildh.bat) me sale el mensaje de que no encuentra el archivo nombreDeArchivo.cpp. ¿Alguna ayuda o archivo .bat para crear la librería).
Un saludo y gracias por adelantado,
Fernando Morales

Un saludo,

Fernando

Las Palmas de Gran Canaria
Posts: 139
Joined: Sun Apr 23, 2006 09:00 AM
Solucionado.
Posted: Tue Apr 20, 2010 07:56 PM

Solucionado.

Fernando Morales

Un saludo,

Fernando

Las Palmas de Gran Canaria
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Crear librería: no encuentra archivo *.cpp
Posted: Wed Apr 21, 2010 05:44 AM

Fernando,

Siempre recomendamos que se comparta la solución para que así pueda servir a otros, gracias :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 139
Joined: Sun Apr 23, 2006 09:00 AM
Disculpas.
Posted: Wed Apr 21, 2010 08:25 AM

Bueno, siento no haber publicado la solución y haber sido bastante escueto. La cosa es que estaba haciendo pruebas y me daba ese error del archivo .cpp. No recuerdo de dónde tomé el ejemplo pero lo que importa es que he logrado que me genere la librería a partir del prg que utlizaba en FW195. Como LIB.EXE me daba problemas he optado por TLINK. Ahí va el .bat (que no es otra cosa que BUILDH.BAT sin el apartado de lincado):

Utilización: CREALIB NombreDeArchivo

@ECHO OFF
if "%FWDIR%" == "" set FWDIR=...
if "%HBDIR%" == "" set HBDIR=c:\harbour
set GT=gtgui

ECHO Compilando...

set hdir=%HBDIR%
set hdirl=%hdir%\lib
set fwh=%FWDIR%
set bcdir=c:\bcc55

C:\HARBOUR\BIN\HARBOUR %1 /m /n /iC:\FWH\INCLUDE;C:\HARBOUR\INCLUDE > comp.log
IF ERRORLEVEL 1 GOTO COMPILEERRORS
@type comp.log

echo -O2 -e%1.exe -I%hdir%\include -I%bcdir%\include %1.c > b32.bc

%bcdir%\bin\bcc32 -M -c @b32.bc
:ENDCOMPILE
IF EXIST %1.LIB DEL %1.LIB
%bcdir%\bin\TLIB %1.LIB +%1.OBJ
GOTO FIN

:COMPILEERRORS
echo "Errores de compilaci¢n"

:FIN

Un saludo,
Fernando Morales

Un saludo,

Fernando

Las Palmas de Gran Canaria
Posts: 139
Joined: Sun Apr 23, 2006 09:00 AM
Pero me da errores en la llamada a las funciones.
Posted: Wed Apr 21, 2010 08:36 AM

¿Es correcto el archivo que he pasado antes? Crea la librería pero me arroja este mensaje al compilar con BUILDH.BAT el programa que llama a una de las funciones contenidas en el LIB.

C:\FWH\FUNCION\FERNANDO.LIB(1):'Unrecognized keyword '­''
Fatal: Error processing .DEF file

Un saludo,

Fernando

Las Palmas de Gran Canaria
Posts: 139
Joined: Sun Apr 23, 2006 09:00 AM
Solucionado.
Posted: Wed Apr 21, 2010 09:42 AM

He creado un nuevo archivo.bat para crear la libreria con este código que he copiado de uno de las respuestas de Antonio Linares:

for %%f in (.prg) do c:\harbour\bin\harbour %%f /n /ic:\fwh\include;c:\harbour\include
for %%f in (
.c) do c:\bcc55\bin\bcc32 -c -Ic:\bcc55\include;c:\harbour\include %%f
for %%f in (*.obj) do c:\bcc55\bin\tlib fiveh.lib -+ %%f /0 /P32,,

El archivo que me genera es fiveh.lib. La renombro y lista para usar.

En cuanto al BUILDH.BAT me daba error porque hay que cambiar:

echo %bcdir%\lib\psdk\rasapi32.lib , >> b32.bc

POR:

echo %bcdir%\lib\psdk\rasapi32.lib + >> b32.bc
echo c:\fwh\funcion\mi_libreria.lib , >> b32.bc

Parece que va funcionando. Espero no dar tantas vueltas con proyecto.rmk

Un saludo,
Fernando Morales

Un saludo,

Fernando

Las Palmas de Gran Canaria

Continue the discussion