Page 1 of 1
Crear librería: no encuentra archivo *.cpp
Posted:
Tue Apr 20, 2010 4:29 pm
by fernandomoralesdr
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
Solucionado.
Posted:
Tue Apr 20, 2010 7:56 pm
by fernandomoralesdr
Solucionado.
Fernando Morales
Re: Crear librería: no encuentra archivo *.cpp
Posted:
Wed Apr 21, 2010 5:44 am
by Antonio Linares
Fernando,
Siempre recomendamos que se comparta la solución para que así pueda servir a otros, gracias
Disculpas.
Posted:
Wed Apr 21, 2010 8:25 am
by fernandomoralesdr
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
Pero me da errores en la llamada a las funciones.
Posted:
Wed Apr 21, 2010 8:36 am
by fernandomoralesdr
¿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
Solucionado.
Posted:
Wed Apr 21, 2010 9:42 am
by fernandomoralesdr
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