Crear librería: no encuentra archivo *.cpp

Crear librería: no encuentra archivo *.cpp

Postby fernandomoralesdr » Tue Apr 20, 2010 4: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
fernandomoralesdr
 
Posts: 139
Joined: Sun Apr 23, 2006 9:00 am

Solucionado.

Postby fernandomoralesdr » Tue Apr 20, 2010 7:56 pm

Solucionado.

Fernando Morales
Un saludo,
Fernando
Las Palmas de Gran Canaria
fernandomoralesdr
 
Posts: 139
Joined: Sun Apr 23, 2006 9:00 am

Re: Crear librería: no encuentra archivo *.cpp

Postby Antonio Linares » Wed Apr 21, 2010 5: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41476
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Disculpas.

Postby fernandomoralesdr » Wed Apr 21, 2010 8: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
fernandomoralesdr
 
Posts: 139
Joined: Sun Apr 23, 2006 9:00 am

Pero me da errores en la llamada a las funciones.

Postby fernandomoralesdr » Wed Apr 21, 2010 8: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
fernandomoralesdr
 
Posts: 139
Joined: Sun Apr 23, 2006 9:00 am

Solucionado.

Postby fernandomoralesdr » Wed Apr 21, 2010 9: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
fernandomoralesdr
 
Posts: 139
Joined: Sun Apr 23, 2006 9:00 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 117 guests