jvtecheto
Posts: 603 Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain
Post
by jvtecheto » Wed Jun 19, 2019 7:59 pm
Compuin wrote: Asi es, Logro crear la libreria, mil gracias En cuanto a los avisos? Solo ignorarlos ? O se pueden apagar ? No causara que la lib falle ?
Hola Compuin.
Perdona pero tambien me interesa el tema y con tantos cambios al final no logro conocer el fichero .mak que has utilizado para crear la libreria, puedes publicarlo asi como e. .bat?
Y una vez creado donde se añade al fichero .mak para crear el ejecutable.?
Gracias amigo.
Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Compuin
Posts: 1253 Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada
Has thanked: 9 times
Been thanked: 3 times
Post
by Compuin » Wed Jun 19, 2019 8:07 pm
brakaman wrote: Compuin wrote: Asi es, Logro crear la libreria, mil gracias En cuanto a los avisos? Solo ignorarlos ? O se pueden apagar ? No causara que la lib falle ?
Hola Compuin.
Perdona pero tambien me interesa el tema y con tantos cambios al final no logro conocer el fichero .mak que has utilizado para crear la libreria, puedes publicarlo asi como e. .bat?
Y una vez creado donde se añade al fichero .mak para crear el ejecutable.?
Gracias amigo.
Jose.
Hola brakaman, aqui te va
Para el bat, yo lo llamo go.bat
Code: Select all | Expand
@echo off REM - REM by Thefull for Front-End Release 0.5 REM -IF NOT EXIST .\obj MD .\objIF NOT EXIST .\lib MD .\lib :BUILD C:\BCC74\BIN\MAKE -m -fmylib.mak > make.log if errorlevel 1 goto BUILD_ERR :BUILD_OK rem Front-End send path + exe filename if exist %2 .exe %2 .exe goto EXIT :BUILD_ERR notepad make.log goto EXIT :EXIT rem time de compilado 1 :21 / 1 :22 / 1 :46
Y este es el .mak, yo lo llamo mylib.mak
Code: Select all | Expand
# Directorios Principales #################################################### FIVEWIN_DIR = \Fwh1901 HARBOUR_DIR = \Harbour32 BORLANDC_DIR = \Bcc74 # Make directives ############################################################ .swap .suffixes: .prg # Application directories & filenames ######################################## LIB_NAME = mylib # ( Your LIB name without extension) LIB_PRG_DIR = source # . LIB_OBJ_DIR = obj # ( create the app\obj directory first) LIB_INCLUDE_DIR = include # . LIB_LIB_DIR = lib # $( LIB_PRG_DIR) LIB_LIB = $( LIB_LIB_DIR) \$( LIB_NAME) .lib # Paths for dependent files ################################################## .path.c = $( LIB_PRG_DIR) .path.prg = $( LIB_PRG_DIR) .path.obj = $( LIB_OBJ_DIR) # Application PRG and C files ( your PRG/C files go here) ##################### LIB_PRG_LIST = \ #SButton TSButton.prg \ TSBar.prg \ TSLines.prg \ TSRadio.prg \ TSTSay.prg \ TSGradie.prg \ BPaint.c \ #BtnGet Btnget.prg \ Btndown.prg \ Getbtn.c \ #TbmpGet TBmpGet.prg \ # Contruction of the rest dependency lists ################################### LIB_PRGS = $( LIB_PRG_LIST) TMP_001 = $( LIB_PRG_LIST:.prg=.obj) LIB_OBJ = $( TMP_001:.c=.obj) LIB_TMP0 = OBJ\$( LIB_OBJ:.obj=.obj +OBJ\) LIB_TMP1 = $( LIB_TMP0: =) LIB_TMP2 = $( LIB_TMP1:.obj=.obj ) _ LIB_TMP3 = +$( LIB_TMP2:+OBJ\_=) # Fivewin directories ######################################################## FIVEWIN_INCLUDE_DIR = $( FIVEWIN_DIR) \include # Harbour directories & flags ################################################ HARBOUR_INCLUDE_DIR = $( HARBOUR_DIR) \include HARBOUR_EXE_DIR = $( HARBOUR_DIR) \bin HARBOUR_FLAGS = -i$( LIB_INCLUDE_DIR) ;$( FIVEWIN_INCLUDE_DIR) ;$( HARBOUR_INCLUDE_DIR) -n -m -w -es2 -gc0 HARBOUR_EXE = $( HARBOUR_EXE_DIR) \harbour.exe # Borlanc directories & flags ################################################ BORLANDC_INCLUDE_DIR = $( BORLANDC_DIR) \include;$( FIVEWIN_INCLUDE_DIR) BORLANDC_EXE_DIR = $( BORLANDC_DIR) \bin BORLANDC_LIB_DIR = $( BORLANDC_DIR) \lib BORLANDC_COMP_FLAGS = -M -D__HARBOUR__ -c -O2 -I$( HARBOUR_INCLUDE_DIR) ;$( BORLANDC_INCLUDE_DIR) -D__HARBOUR__;HB_API_MACROS;HB_FM_STATISTICS_OFF BORLANDC_COMP_EXE = $( BORLANDC_EXE_DIR) \bcc32.exe BORLANDC_TLIB_EXE = $( BORLANDC_EXE_DIR) \tlib.exe # Dependencies ############################################################### all: $( LIB_OBJ) $( LIB_PRGS) $( LIB_LIB) # Implicit Rules ############################################################# .prg.obj: @$( HARBOUR_EXE) $( HARBOUR_FLAGS) $** -o$( LIB_OBJ_DIR) \temp.c @$( BORLANDC_COMP_EXE) $( BORLANDC_COMP_FLAGS) -o$@ $( LIB_OBJ_DIR) \temp.c @if exist $( LIB_OBJ_DIR) \temp.c $( DEL) $( LIB_OBJ_DIR) \temp.c .c.obj: @$( BORLANDC_COMP_EXE) $( BORLANDC_COMP_FLAGS) -o$@ $** # Explicit Rules ############################################################# $( LIB_LIB) :: $( LIB_OBJ) @if exist $( LIB_LIB) $( DEL) $( LIB_LIB) @$( BORLANDC_TLIB_EXE) $( LIB_LIB) /P32 $( LIB_TMP3)
Espero ayude
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
jvtecheto
Posts: 603 Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain
Post
by jvtecheto » Thu Jun 20, 2019 10:29 am
Correcto. Funciona. Muchisimassss, gracias. Jose
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
jvtecheto
Posts: 603 Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain
Post
by jvtecheto » Thu Apr 30, 2020 2:35 pm
Compuin wrote: brakaman wrote: Compuin wrote: Asi es, Logro crear la libreria, mil gracias En cuanto a los avisos? Solo ignorarlos ? O se pueden apagar ? No causara que la lib falle ?
Hola Compuin.
Perdona pero tambien me interesa el tema y con tantos cambios al final no logro conocer el fichero .mak que has utilizado para crear la libreria, puedes publicarlo asi como e. .bat?
Y una vez creado donde se añade al fichero .mak para crear el ejecutable.?
Gracias amigo.
Jose.
Hola brakaman, aqui te va
Para el bat, yo lo llamo go.bat
Code: Select all | Expand
@echo off REM - REM by Thefull for Front-End Release 0.5 REM -IF NOT EXIST .\obj MD .\objIF NOT EXIST .\lib MD .\lib :BUILD C:\BCC74\BIN\MAKE -m -fmylib.mak > make.log if errorlevel 1 goto BUILD_ERR :BUILD_OK rem Front-End send path + exe filename if exist %2 .exe %2 .exe goto EXIT :BUILD_ERR notepad make.log goto EXIT :EXIT rem time de compilado 1 :21 / 1 :22 / 1 :46
Y este es el .mak, yo lo llamo mylib.mak
Code: Select all | Expand
# Directorios Principales #################################################### FIVEWIN_DIR = \Fwh1901 HARBOUR_DIR = \Harbour32 BORLANDC_DIR = \Bcc74 # Make directives ############################################################ .swap .suffixes: .prg # Application directories & filenames ######################################## LIB_NAME = mylib # ( Your LIB name without extension) LIB_PRG_DIR = source # . LIB_OBJ_DIR = obj # ( create the app\obj directory first) LIB_INCLUDE_DIR = include # . LIB_LIB_DIR = lib # $( LIB_PRG_DIR) LIB_LIB = $( LIB_LIB_DIR) \$( LIB_NAME) .lib # Paths for dependent files ################################################## .path.c = $( LIB_PRG_DIR) .path.prg = $( LIB_PRG_DIR) .path.obj = $( LIB_OBJ_DIR) # Application PRG and C files ( your PRG/C files go here) ##################### LIB_PRG_LIST = \ #SButton TSButton.prg \ TSBar.prg \ TSLines.prg \ TSRadio.prg \ TSTSay.prg \ TSGradie.prg \ BPaint.c \ #BtnGet Btnget.prg \ Btndown.prg \ Getbtn.c \ #TbmpGet TBmpGet.prg \ # Contruction of the rest dependency lists ################################### LIB_PRGS = $( LIB_PRG_LIST) TMP_001 = $( LIB_PRG_LIST:.prg=.obj) LIB_OBJ = $( TMP_001:.c=.obj) LIB_TMP0 = OBJ\$( LIB_OBJ:.obj=.obj +OBJ\) LIB_TMP1 = $( LIB_TMP0: =) LIB_TMP2 = $( LIB_TMP1:.obj=.obj ) _ LIB_TMP3 = +$( LIB_TMP2:+OBJ\_=) # Fivewin directories ######################################################## FIVEWIN_INCLUDE_DIR = $( FIVEWIN_DIR) \include # Harbour directories & flags ################################################ HARBOUR_INCLUDE_DIR = $( HARBOUR_DIR) \include HARBOUR_EXE_DIR = $( HARBOUR_DIR) \bin HARBOUR_FLAGS = -i$( LIB_INCLUDE_DIR) ;$( FIVEWIN_INCLUDE_DIR) ;$( HARBOUR_INCLUDE_DIR) -n -m -w -es2 -gc0 HARBOUR_EXE = $( HARBOUR_EXE_DIR) \harbour.exe # Borlanc directories & flags ################################################ BORLANDC_INCLUDE_DIR = $( BORLANDC_DIR) \include;$( FIVEWIN_INCLUDE_DIR) BORLANDC_EXE_DIR = $( BORLANDC_DIR) \bin BORLANDC_LIB_DIR = $( BORLANDC_DIR) \lib BORLANDC_COMP_FLAGS = -M -D__HARBOUR__ -c -O2 -I$( HARBOUR_INCLUDE_DIR) ;$( BORLANDC_INCLUDE_DIR) -D__HARBOUR__;HB_API_MACROS;HB_FM_STATISTICS_OFF BORLANDC_COMP_EXE = $( BORLANDC_EXE_DIR) \bcc32.exe BORLANDC_TLIB_EXE = $( BORLANDC_EXE_DIR) \tlib.exe # Dependencies ############################################################### all: $( LIB_OBJ) $( LIB_PRGS) $( LIB_LIB) # Implicit Rules ############################################################# .prg.obj: @$( HARBOUR_EXE) $( HARBOUR_FLAGS) $** -o$( LIB_OBJ_DIR) \temp.c @$( BORLANDC_COMP_EXE) $( BORLANDC_COMP_FLAGS) -o$@ $( LIB_OBJ_DIR) \temp.c @if exist $( LIB_OBJ_DIR) \temp.c $( DEL) $( LIB_OBJ_DIR) \temp.c .c.obj: @$( BORLANDC_COMP_EXE) $( BORLANDC_COMP_FLAGS) -o$@ $** # Explicit Rules ############################################################# $( LIB_LIB) :: $( LIB_OBJ) @if exist $( LIB_LIB) $( DEL) $( LIB_LIB) @$( BORLANDC_TLIB_EXE) $( LIB_LIB) /P32 $( LIB_TMP3)
Espero ayude
Hola Compuin :
Te dije que la libreria funciona bien y es cierto pero siempre que en la carpeta obj tengas ya generados los ficheros *.obj y *.c , prueba a borrarlos e intenta generar la libreria desde cero, por lo menos a mi no me
funciona , me he dado cuenta ahora que he intentado construirla cambiando varios ficheros fuentes.
Alguien sabe las correcciones para construir la libreria desde cero.
Gracias a todos.
Saludos.
Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64