Error to change BCC Compiler to Mingw

518 views
Skip to first unread message

Mauricio

unread,
Jan 19, 2013, 5:19:57 PM1/19/13
to harbou...@googlegroups.com
Hello,

I am using BCC to bind, to try to change MinGW generates many errors and does not create EXE

changes which must be applied to the link?

=================

with BCC Make EXE

with MinGW show:


are the same sources, there is no change, only the linker


Lines 5473, Functions/Procedures 100
Generating C source output to 'C:\Users\Mauricio\AppData\Local\Temp\hbmk_jwwws9.dir\factura.c'... Done.
Compiling 'source\indices.prg'...


Lines 648, Functions/Procedures 2
Generating C source output to 'C:\Users\Mauricio\AppData\Local\Temp\hbmk_jwwws9.dir\indices.c'... Done.
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x0): multiple definition of `HB_FUN_PRINTFILE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x2e0): multiple definition of `HB_FUN_LEXPORT'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x2e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x300): multiple definition of `HB_FUN_DIRCREATE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x300): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x320): multiple definition of `HB_FUN_NSERIALHD'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x320): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x340): multiple definition of `HB_FUN_COMPRESS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x340): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x360): multiple definition of `HB_FUN_CHRONO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x360): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x380): multiple definition of `HB_FUN_ISNUM'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x380): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x3a0): multiple definition of `HB_FUN_BOXWARNING'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x3a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x3c0): multiple definition of `HB_FUN_BACKUP'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x3c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x3e0): multiple definition of `HB_FUN_BOXOPEN'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x3e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x400): multiple definition of `HB_FUN_FCOPY'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x400): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x420): multiple definition of `HB_FUN_RESTORE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x420): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x440): multiple definition of `HB_FUN_GRAPHELLIPSE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x440): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x460): multiple definition of `HB_FUN_SCATTER'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x460): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x480): multiple definition of `HB_FUN_POPCALC'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x480): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x4a0): multiple definition of `HB_FUN_TETRIS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x4a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x4c0): multiple definition of `HB_FUN_MANAGER'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x4c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x4e0): multiple definition of `HB_FUN_DISPSTR'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x4e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x500): multiple definition of `HB_FUN_GRAPHTART'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x500): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x520): multiple definition of `HB_FUN_DOGCHECK'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x520): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x540): multiple definition of `HB_FUN_READDOG'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x540): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x560): multiple definition of `HB_FUN_SETVGA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x560): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x580): multiple definition of `HB_FUN_GRAPHBAR3'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x580): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x5a0): multiple definition of `HB_FUN_GATHER'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x5a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x5c0): multiple definition of `HB_FUN_FT_ONTICK'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x5c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x5e0): multiple definition of `HB_FUN_FT_ONIDLE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x5e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x600): multiple definition of `HB_FUN_PUZZLE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x600): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x620): multiple definition of `HB_FUN_BIGCLOCK'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x620): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x640): multiple definition of `HB_FUN_TXTMODE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x640): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x660): multiple definition of `HB_FUN_ASCIITAB'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x660): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x680): multiple definition of `HB_FUN_POPDATE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x680): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x6a0): multiple definition of `HB_FUN_CHAOS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x6a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x6c0): multiple definition of `HB_FUN_CHOOSECOLOR'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x6c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x6e0): multiple definition of `HB_FUN_SETSPANISH'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x6e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x700): multiple definition of `HB_FUN_IVA4'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x700): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x720): multiple definition of `HB_FUN_IVA3'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x720): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x740): multiple definition of `HB_FUN_IVA2'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x740): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x760): multiple definition of `HB_FUN_IVA1'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x760): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x780): multiple definition of `HB_FUN_ISOFELIA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x780): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x7a0): multiple definition of `HB_FUN_FECHACORAL'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x7a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x7c0): multiple definition of `HB_FUN_XSUPREDONDEA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x7c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x7e0): multiple definition of `HB_FUN_ISBST'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x7e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x800): multiple definition of `HB_FUN_NOMDIA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x800): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x820): multiple definition of `HB_FUN_CHAR2NUM'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x820): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x840): multiple definition of `HB_FUN_VDISPLAY'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x840): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x860): multiple definition of `HB_FUN_TIPOLETRA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x860): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x880): multiple definition of `HB_FUN_FILL'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x880): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x8a0): multiple definition of `HB_FUN_OPTIONSKEYS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x8a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x8c0): multiple definition of `HB_FUN_GLOBREP'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x8c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x8e0): multiple definition of `HB_FUN_CREAENTRADA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x8e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x900): multiple definition of `HB_FUN__PUZZLE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x900): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x920): multiple definition of `HB_FUN_AUTOGENERA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x920): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x940): multiple definition of `HB_FUN_EXIALMACEN'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x940): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x960): multiple definition of `HB_FUN_PINTAALMACEN'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x960): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x980): multiple definition of `HB_FUN_NOMBREARCHIVO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x980): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x9a0): multiple definition of `HB_FUN_CDOLARES'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x9a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x9c0): multiple definition of `HB_FUN_FECHANOM'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x9c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x9e0): multiple definition of `HB_FUN_NOMBREMES'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x9e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa00): multiple definition of `HB_FUN_FECHA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa00): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa20): multiple definition of `HB_FUN_IMPRIMEGAVETA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa20): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa40): multiple definition of `HB_FUN_CONTGAVETA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa40): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa60): multiple definition of `HB_FUN_MOVERSE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa60): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa80): multiple definition of `HB_FUN__MUESTRAPAGOS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xa80): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xaa0): multiple definition of `HB_FUN_ACTIVO1'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xaa0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xac0): multiple definition of `HB_FUN_TR'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xac0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xae0): multiple definition of `HB_FUN_FECHA2'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xae0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb00): multiple definition of `HB_FUN_MUESTRALADYS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb00): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb20): multiple definition of `HB_FUN_MUESTRAPAGOS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb20): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb40): multiple definition of `HB_FUN_READARCHIVO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb40): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb60): multiple definition of `HB_FUN_NOPRINTER'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb60): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb80): multiple definition of `HB_FUN_CENTRA20'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xb80): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xba0): multiple definition of `HB_FUN_ESCRIBECAMPOS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xba0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xbc0): multiple definition of `HB_FUN_LEECAMPOS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xbc0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xbe0): multiple definition of `HB_FUN_XFECHACORTA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xbe0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc00): multiple definition of `HB_FUN_REVISACAMPO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc00): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc20): multiple definition of `HB_FUN_SUMASDISPLAY'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc20): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc40): multiple definition of `HB_FUN_XVERDISPLAY'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc40): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc60): multiple definition of `HB_FUN_VERDISPLAY'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc60): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc80): multiple definition of `HB_FUN_PONDISPLAY'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xc80): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xca0): multiple definition of `HB_FUN_ACERCA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xca0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xcc0): multiple definition of `HB_FUN_BUSCACAMPO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xcc0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xce0): multiple definition of `HB_FUN_ISGAS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xce0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd00): multiple definition of `HB_FUN_ISFACTURA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd00): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd20): multiple definition of `HB_FUN_MEDICO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd20): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd40): multiple definition of `HB_FUN_SONIDO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd40): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd60): multiple definition of `HB_FUN__RETEFECTIVO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd60): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd80): multiple definition of `HB_FUN_FRASES'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xd80): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xda0): multiple definition of `HB_FUN_SANTORAL'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xda0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xdc0): multiple definition of `HB_FUN_CLAVE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xdc0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xde0): multiple definition of `HB_FUN_MIA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xde0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe00): multiple definition of `HB_FUN_UPDATEHORA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe00): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe20): multiple definition of `HB_FUN_UPDATEFECHA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe20): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe40): multiple definition of `HB_FUN_ISMIA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe40): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe60): multiple definition of `HB_FUN_REVISAPRINTER'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe60): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe80): multiple definition of `HB_FUN_MESES'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xe80): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xea0): multiple definition of `HB_FUN_ABREARCHIVOS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xea0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xec0): multiple definition of `HB_FUN_CIERRAALIAS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xec0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xee0): multiple definition of `HB_FUN_BUSCAALIAS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xee0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf00): multiple definition of `HB_FUN_CHECKPORT'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf00): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf20): multiple definition of `HB_FUN_PRNCOMMIT'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf20): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf40): multiple definition of `HB_FUN_MSWINDOWS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf40): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf60): multiple definition of `HB_FUN_OPCIONES'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf60): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf80): multiple definition of `HB_FUN_AYUDA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xf80): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xfa0): multiple definition of `HB_FUN__BROWSE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xfa0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xfc0): multiple definition of `HB_FUN_ARCHIVO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xfc0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xfe0): multiple definition of `HB_FUN_BARRAMSG'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0xfe0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1000): multiple definition of `HB_FUN_SHORT2DATE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1000): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1020): multiple definition of `HB_FUN_NOM_DATE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1020): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1040): multiple definition of `HB_FUN_SHORTDATE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1040): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1060): multiple definition of `HB_FUN_INDEXA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1060): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1080): multiple definition of `HB_FUN_REDONDEA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1080): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x10a0): multiple definition of `HB_FUN_FECHAC2'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x10a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x10c0): multiple definition of `HB_FUN_FECHACORTA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x10c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x10e0): multiple definition of `HB_FUN_BROWSER2'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x10e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1100): multiple definition of `HB_FUN_CONVERT'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1100): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1120): multiple definition of `HB_FUN_SALIDA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1120): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1140): multiple definition of `HB_FUN_NOACCESO'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1140): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1160): multiple definition of `HB_FUN_HOJEA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1160): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1180): multiple definition of `HB_FUN_DEPNAME'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1180): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x11a0): multiple definition of `HB_FUN_CAPITAL'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x11a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x11c0): multiple definition of `HB_FUN_CLOSEPROCESS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x11c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x11e0): multiple definition of `HB_FUN_BOXPROCESS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x11e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1200): multiple definition of `HB_FUN_ENVIAR'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1200): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1220): multiple definition of `HB_FUN_C2'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1220): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1240): multiple definition of `HB_FUN_CENTRA90'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1240): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1260): multiple definition of `HB_FUN_C4'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1260): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1280): multiple definition of `HB_FUN_C3'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1280): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x12a0): multiple definition of `HB_FUN_C1'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x12a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x12c0): multiple definition of `HB_FUN_TITLE90'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x12c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x12e0): multiple definition of `HB_FUN_TITLE80'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x12e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1300): multiple definition of `HB_FUN_TITLE120'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1300): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1320): multiple definition of `HB_FUN_ALERTA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1320): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1340): multiple definition of `HB_FUN_WZRAND'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1340): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1360): multiple definition of `HB_FUN_WZRANDFILE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1360): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1380): multiple definition of `HB_FUN_APPLYKEY'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1380): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x13a0): multiple definition of `HB_FUN_OPEN'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x13a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x13c0): multiple definition of `HB_FUN_CODNAME'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x13c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x13e0): multiple definition of `HB_FUN_PROVNAME'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x13e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1400): multiple definition of `HB_FUN_CTENAME'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1400): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1420): multiple definition of `HB_FUN_REVISACUENTAS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1420): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1440): multiple definition of `HB_FUN_XXXLICENCIA'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1440): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1460): multiple definition of `HB_FUN_ISNUMCTA2'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1460): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1480): multiple definition of `HB_FUN_GENERAPASS'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1480): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x14a0): multiple definition of `HB_FUN_RESURTE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x14a0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x14c0): multiple definition of `HB_FUN__SYSCONFIG'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x14c0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x14e0): multiple definition of `HB_FUN___SOFT'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x14e0): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1500): multiple definition of `HB_FUN_CHECACLAVE'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1500): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1520): multiple definition of `HB_FUN__USRCONFIG'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x1520): first defined here
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/taxes.o:taxes.c:(.text+0x0): multiple definition of `HB_FUN_TAXES'
C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/taxes.o:taxes.c:(.text+0x0): first defined here
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot find -lsuperlib
collect2.exe: error: ld devolvi el estado de salida 1

hbmk2: Hint: Add option 'hbnf.hbc' for missing function(s): ft_OnTick()
hbmk2: Error: Referenced, missing, but unknown function(s): PRINTFILE(),
       LEXPORT(), DIRCREATE(), NSERIALHD(), COMPRESS(), CHRONO(), ISNUM(),
       BOXWARNING(), BACKUP(), BOXOPEN(), FCOPY(), RESTORE(), GRAPHELLIPSE(),
       SCATTER(), POPCALC(), TETRIS(), MANAGER(), DISPSTR(), GRAPHTART(),
       DOGCHECK(), READDOG(), SETVGA(), GRAPHBAR3(), GATHER(), FT_ONIDLE(),
       PUZZLE(), BIGCLOCK(), TXTMODE(), ASCIITAB(), POPDATE(), CHAOS(),
       CHOOSECOLOR(), SETSPANISH(), IVA4(), IVA3(), IVA2(), IVA1(), ISOFELIA(),
       FECHACORAL(), XSUPREDONDEA(), ISBST(), NOMDIA(), CHAR2NUM(), VDISPLAY(),
       TIPOLETRA(), FILL(), OPTIONSKEYS(), GLOBREP(), CREAENTRADA(), _PUZZLE(),
       AUTOGENERA(), EXIALMACEN(), PINTAALMACEN(), NOMBREARCHIVO(), CDOLARES(),
       FECHANOM(), NOMBREMES(), FECHA(), IMPRIMEGAVETA(), CONTGAVETA(),
       MOVERSE(), _MUESTRAPAGOS(), ACTIVO1(), TR(), FECHA2(), MUESTRALADYS(),
       MUESTRAPAGOS(), READARCHIVO(), NOPRINTER(), CENTRA20(), ESCRIBECAMPOS(),
       LEECAMPOS(), XFECHACORTA(), REVISACAMPO(), SUMASDISPLAY(),
       XVERDISPLAY(), VERDISPLAY(), PONDISPLAY(), ACERCA(), BUSCACAMPO(),
       ISGAS(), ISFACTURA(), MEDICO(), SONIDO(), _RETEFECTIVO(), FRASES(),
       SANTORAL(), CLAVE(), MIA(), UPDATEHORA(), UPDATEFECHA(), ISMIA(),
       REVISAPRINTER(), MESES(), ABREARCHIVOS(), CIERRAALIAS(), BUSCAALIAS(),
       CHECKPORT(), PRNCOMMIT(), MSWINDOWS(), OPCIONES(), AYUDA(), _BROWSE(),
       ARCHIVO(), BARRAMSG(), SHORT2DATE(), NOM_DATE(), SHORTDATE(), INDEXA(),
       REDONDEA(), FECHAC2(), FECHACORTA(), BROWSER2(), CONVERT(), SALIDA(),
       NOACCESO(), HOJEA(), DEPNAME(), CAPITAL(), CLOSEPROCESS(), BOXPROCESS(),
       ENVIAR(), C2(), CENTRA90(), C4(), C3(), C1(), TITLE90(), TITLE80(),
       TITLE120(), ALERTA(), WZRAND(), WZRANDFILE(), APPLYKEY(), OPEN(),
       CODNAME(), PROVNAME(), CTENAME(), REVISACUENTAS(), XXXLICENCIA(),
       ISNUMCTA2(), GENERAPASS(), RESURTE(), _SYSCONFIG(), __SOFT(),
       CHECACLAVE(), _USRCONFIG(), TAXES()

Klas Engwall

unread,
Jan 20, 2013, 8:43:13 AM1/20/13
to harbou...@googlegroups.com
Hi Mauricio,

> C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x0):
> multiple definition of `HB_FUN_PRINTFILE'
> C:/Users/Mauricio/AppData/Local/Temp/hbmk_jwwws9.dir/funs.o:funs.c:(.text+0x0):
> first defined here

[etc]

You seem to have a source code file called funs.prg where lots of
functions are defined. Some have the same names as already existing
functions in hbct and hbnf (and possibly other libs). What is funs.prg
and why does it repeat functions like Printfile() and FT_OnIdle()? Are
those real functions in funs.prg or only stubs?

There are also Spanish sounding functions like Nombremes() and
Imprimegaveta(). Where do those exist in addition to in funs.prg?

And what does your hbp file look like?

Regards,
Klas

Francesco Perillo

unread,
Jan 20, 2013, 9:57:30 AM1/20/13
to harbou...@googlegroups.com

A big difference between BCC and mingw is in the link process. I had this problem in the past too.

BCC allows you to define a function in a .obj file and it has predecence over the corresponding function in a lib. This allows you to redefine a single object.

mingw doesn't allow you to do this and it has more stringent requirements on libraries.

In your case the linker can't locate superlib library
(c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot find -lsuperlib) and so a lot

Is it possible that funs.prg is listed twice, or once as prg and once as library ?

Przemyslaw Czerpak

unread,
Jan 20, 2013, 10:20:29 AM1/20/13
to harbou...@googlegroups.com
On Sun, 20 Jan 2013, Francesco Perillo wrote:

Hi,

> A big difference between BCC and mingw is in the link process. I had this
> problem in the past too.
>
> BCC allows you to define a function in a .obj file and it has predecence
> over the corresponding function in a lib. This allows you to redefine a
> single object.

Exactly the same as in MinGW.

> mingw doesn't allow you to do this and it has more stringent requirements
> on libraries.

Not true. MinGW allows to overload library functions just like BCC.
And when you use even single functions from .obj module then both
linkers add whole .obj module to final binaries.
It means that if you do not overload all functions from .obj module
then you are creating final binaries with both .obj modules - one
is your own and second is from library.
So the main difference between BCC and MinGW at link time is other.
BCC allows to link in final binaries many public functions with
the same name completely silently without any warnings or errors
when in MinGW it's forbidden by default.
That's all.
You can use MinGW switch to enable such possibility but it is bad idea
because final binaries may not work correctly. Modern compiler can
autoinline functions automatically so you may create binaries with
two different functions with the same name.

best regards,
Przemek

elch

unread,
Jan 20, 2013, 4:03:54 PM1/20/13
to harbou...@googlegroups.com

MinGW is fine, old borland nearly dead


try:

-ldflag=--allow-multiple-definition


in your .hbp


regards

elch

elch

unread,
Jan 20, 2013, 10:56:29 PM1/20/13
to harbou...@googlegroups.com

hi Mauricio,


that are many ! overwritings of existing functions.


these onIdle() and onTick() functions you re-define somewhere in your source - that's no good, throw them out.


you have an own _browse() and applykey() for that - ok, that can work, but not must.


You more than one time programmed a tetris() ! -- pp please publish ;-)


regards

elch

elch

unread,
Jan 20, 2013, 11:46:36 PM1/20/13
to harbou...@googlegroups.com
without i can't live:

mis-write it, excusee ...

-ldflag=-Wl,--allow-multiple-definition

but please check, what you are try to link together

Rolf

Mauricio

unread,
Jan 21, 2013, 2:32:19 PM1/21/13
to harbou...@googlegroups.com
Hello,

All I had to define it in Borland me the calls are NanForum.lib and the latest version of HB that I had were not added.

my link file, NO have LNK o HBP file,
hbmk2 source\wizard source\clientes.prg source\funs.prg source\archivos.prg source\provedor.prg source\funs.prg source\deptos.prg source\usuarios.prg source\utileria.prg source\terminos.prg source\guias.prg source\pagos.prg source\grupos.prg source\taxes.prg source\taxes.prg source\ubica.prg source\vendedor.prg source\articulo.prg source\facturar.prg source\verlab.prg source\tvpfuns.prg source\nums.prg source\vtienda.prg source\cortes.prg source\crear.prg source\cortez.prg source\corte2.prg source\tvp.prg source\tvp2.prg source\audita.prg source\factura2.prg source\emision.prg source\listados.prg source\aparta.prg source\cuentas.prg source\traspaso.prg source\ajustes.prg source\opc.prg source\movsca.prg source\servicio.prg source\compras.prg source\compras2.prg source\cotiza.prg source\repvta.prg source\tec.prg source\infosale.prg source\varios.prg source\catalogo.prg source\remision.prg source\ventas.prg source\reportes.prg source\compuesto.prg source\repart.prg source\repcomp.prg source\repcat.prg source\repaju.prg source\reptras.prg source\ofertas.prg source\precios.prg source\creadbf.prg source\s_meas.prg source\datalocl.prg source\movtos.prg source\almacen.prg source\exporta.prg source\importa.prg source\utilidad.prg source\cxc01.prg source\serv.prg source\graficas.prg source\factura.prg source\indices.prg -lsuperlib -lhbwin -lhbct -lhboslib -lhbblink -gtwvt -b -lxhb

Regards,
Mauricio





Mauricio

unread,
Jan 21, 2013, 2:36:21 PM1/21/13
to harbou...@googlegroups.com
Hello,

Yes, not many but not Borlard brand, is the same code and the same PRGS hbmk2, then I lost;-(

Yes when operating in MinGW published the code, we're


Regards,
Mauricio
Tijuana, Mexico



El domingo, 20 de enero de 2013 19:56:29 UTC-8, elch escribió:

elch

unread,
Jan 21, 2013, 4:24:53 PM1/21/13
to harbou...@googlegroups.com
Hi,

the main problem i see with only ! your funs.prg
That seem to be VERY old stuff - can't really imagine what that should be.

Perhaps show us what i.e. this function FT_ONIDLE does - or better not should do ...

And then you have 2 times a function: taxes()
-or-
you should remember this compiler option -m, am i right !?

Rolf


elch

unread,
Jan 21, 2013, 4:28:31 PM1/21/13
to harbou...@googlegroups.com

-n !, not mmm
no implicit starting procedure  ..

Klas Engwall

unread,
Jan 21, 2013, 6:13:13 PM1/21/13
to harbou...@googlegroups.com
Hi Rolf,

> -ldflag=-Wl,--allow-multiple-definition

Or the equivalent switch

--create-multiple-headaches

:-)

Regards,
Klas

elch

unread,
Jan 21, 2013, 6:55:36 PM1/21/13
to harbou...@googlegroups.com

Fine Klas is back !


i have there only 2 or 3 functions in my own lib, which are 'dummys' there - i.e. just return an empty string. But referenced from other function in this source-part.

And for special project they are 'overlayed' with 'real' function.


Could you show me a better style ?



> -ldflag=-Wl,--allow-multiple-definition
--create-multiple-headaches
:-)
 
i'm procedural head, not oop like put the pants over the trousers ;-)

fine regards

Klas Engwall

unread,
Jan 22, 2013, 8:51:21 AM1/22/13
to harbou...@googlegroups.com
Hi Rolf,

> Fine Klas is back !

I aint dead yet :-)

> i have there only 2 or 3 functions in my own lib, which are 'dummys'
> there - i.e. just return an empty string. But referenced from other
> function in this source-part.
>
> And for special project they are 'overlayed' with 'real' function.
>
> Could you show me a better style ?

I might be missing something, but if you have dummy functions that do
not do anything, why do you link them at all? Can you give us an example
of how your code works with the dummies and with the real functions?

How is your own lib built? Is it one big source file with all your
functions in it and with various dependencies into standard libs? Old
Blinker users might do that out of habit. If so, why not split it into
several source files so only the needed modules are pulled into the
specific project instead of the entire lib?

For example, put all file related functions in one prg, all date related
functions in one prg, etc. Then link all those modules into one lib
file. If your project only uses the file functions but not the date
functions, then only the file module is linked, and as a bonus the exe
also gets smaller. And put each of the functions with dependencies in
its own source file to isolate it as much as possible and only pull it
when it is really needed.

Did I guess you lib structure correctly? :-)

> > -ldflag=-Wl,--allow-multiple-definition
> --create-multiple-headaches
> :-)
>
> i'm procedural head, not oop like put the pants over the trousers ;-)

This has nothing to do with oop vs procedural. The
--allow-multiple-definition switch handles function name clashes by
sweeping the problems under the carpet. The result can be unpredictable.
That is what I mean with creating headaches.

Regards,
Klas

elch

unread,
Jan 22, 2013, 11:11:30 AM1/22/13
to harbou...@googlegroups.com
Hi Klas,

first: do you know that finding this 'top-secret' switch and overall to put it right into a .hbp ... --
that was much more than only a hour search wild like crazy ;-) some months ago.


Would need longer to describe, boring, that is i.e. a stoneold file-manager, which behaves different in projects - call it a way of decades old inheritance.

And sure, this can today be solved in another way, can it throw out cause these old projects are more dead than borland.

But i first put all energy into real freshing new parts - so all i wanted 'on the fly' from MinGw: PUT THIS TOGETHER - and she did ! ;-)


--

But you try to tell that this hbmk2 ist not reliyable in it's source order, even when i precise look for that place of occurance,

i.e. put my own lib/ lib files with such an 'dummy' second occurance last in list ?

Then a bcc should be explicitly forbidden to be used with harbour, it imho will normal never ? warn about these doubles like even clipper did.



--

For example, put all file related functions in one prg, all date related
functions in one prg, etc
Did I guess you lib structure correctly? :-)
 

You can be VERY sure, that's my life work !

all very penetrant in its own prg modules: here the database driven browse-system,

there the database driven getmask system, there the tbs-system for printing, there some K lines for my text-editor ...

Only three fly on windscreen still left there to see the glory of rest ;-)


BEST regards

Rolf

Klas Engwall

unread,
Jan 22, 2013, 1:22:08 PM1/22/13
to harbou...@googlegroups.com
Hi Rolf,

> first: do you know that finding this 'top-secret' switch and overall to
> put it right into a .hbp ... --
> that was much more than only a hour search wild like crazy ;-) some
> months ago.

Bad luck that you found it, then :-)))

> Would need longer to describe, boring, that is i.e. a stoneold
> file-manager, which behaves different in projects - call it a way of
> decades old inheritance.

One way to solve that kind of "variable use" prg modules is to put the
sources in a separate directory parallell to the project directories and
include the sources in each project with ..\fileman\fileman.prg (or
something like that) and to compile those source files conditionally
depending on which manifest constants are #define-d in each project. I
have several such source code files that do different things depending
on which project they are compiled into. Done that way the variable
compilations are easily documented, and the risk of unexpected behaviour
is minimized.

#ifdef MYPROJECT
my_CommonFunction()
#else
CommonFunction()
#endif

> And sure, this can today be solved in another way, can it throw out
> cause these old projects are more dead than borland.
>
> But i first put all energy into real freshing new parts - so all i
> wanted 'on the fly' from MinGw: PUT THIS TOGETHER - and she did ! ;-)

OK, OK, I get it :-)

> But you try to tell that this hbmk2 ist not reliyable in it's source
> order, even when i precise look for that place of occurance,
> i.e. put my own lib/ lib files with such an 'dummy' second occurance
> last in list ?

hbmk2 does what you tell it. It is more a question about if you and I
and those who come after us are reliable. I am old enough to always
consider what will happen when someone else takes over my projects after
me (and if I, myself, will remember in a couple of years what I did
right now, and why I did it). Why is the application misbehaving?
Because someone changed the order of the lib files? And why does that
matter? Because I happened to write a function with a name that is
identical to a completely different function in a standard lib that does
something completely different? I think that is an entirely bad idea.

> Then a bcc should be explicitly forbidden to be used with harbour, it
> imho will normal never ? warn about these doubles like even clipper did.

I would say that it has been "almost explicitly forbidden" for a number
of years already. But you are free to break the rules :-)

Regards,
Klas

vszakats

unread,
Jan 22, 2013, 2:07:53 PM1/22/13
to harbou...@googlegroups.com
It's enough to move any overridable lib functions into 
separate source files (still built into the lib), so they 
won't be linked at all, when those functions are defined 
by an app source/object.

One may also use codeblocks to customize lib functionality 
with app provided code. Or macros. Or function pointers. 
Or .hrb files even. Some of these methods existed in 
Clipper '84 already. In C language, some of them exist 
since its release in 1972.

Allowing multiply defined functions is one of the stupidest 
die-hard memes (some call it "solution") floating around the 
[x]Harbour community. There is zero technical reason to 
use it in production, if the source code is correctly written/built.

-- Viktor

elch

unread,
Jan 24, 2013, 12:16:14 AM1/24/13
to harbou...@googlegroups.com

Hi more, Klas


i must admit that my 'switch-tip' Mauricio really not woudn't have helped further.


---

to follow your style, dear Klas:

.#ifdef MYPROJECT
.    my_CommonFunction()
.#else
.   CommonFunction()
.#endif


will lead to

a.) same as before, one of this both functions must be present at linking time.

b.) destroys the modularity even more - this my_CommonFunction() belongs to app-source, not to lib source.

c.) that whole lib-code for every app had to be rebuilded just before.

Not a matter of needed time ( my years old 3GHz QC need for my 75K lib lines 20 sec ) - but a more

matter of confusing: did i compiled lib source just right with -dMYPROJECT for this project.

I beg your pardon dear Klas, but here i see at least same amount of possibilies for flops.



A codeblock, perhaps as a par, like, i bow to great source master Viktor advised,

is a solution - but therefore i need to re-design this source parts:


.FUNCTION special(bBlockPar)

. LOCAL bCommon := {|| QOUT(" i do not harm ") }

. IF VALTYPE(bBlockPar) == "B"

. bCommon := bBlockPar

. ENDIF

. EVIL(bCommon) // ;-)

...


---

>> Then a bcc should be explicitly forbidden to be used with harbour, it
>> imho will normal never ? warn about these doubles like even clipper did.
> I would say that it has been "almost explicitly forbidden" for a number
> of years already. But you are free to break the rules :-)

Actual version of FlagShip seem still to use bcc32 for it's Windows port (or M$VC) - perhaps they doesn't find this switch in MinGW :-)


Since year 1987 i personally didn't have had not any single problem with this, perhaps cause i can count these occasions where i used it.


Clipper comes i.e. with an errorsys.prg, to be used as a replace for 'build-in' errorsys(). In same manner xBase++ provides an errorsys.prg.

In both languages the first appearance of a function in link process counts, like in competive life. OOP theory seem to define vice versa the 'overriding' of inheritated methods, here the last runner wins.


This 'meme' Viktor mentioned must be a specific C-developers one, never before heared, but it's real funny to hear of - i sure heared longer ago C-devs need an union to put an INT into a CHAR[1].


---

But let's look to future - Harbour is not only Clipper !

If so, i won't need it and use rest of my life originals like Clipper in Dosemu and xBase++ in virtual machine or with Wine.

So my new project can produce PDFs based on my old-style textblock-system even with boxchars, which are re-drawed.

It is capable after small bugfix of hbmysql to query with MySQL even in UTF8, etc etc ...


Regards

Rolf

vszakats

unread,
Jan 24, 2013, 8:27:17 AM1/24/13
to harbou...@googlegroups.com

Clipper comes i.e. with an errorsys.prg, to be used as a replace for 'build-in' errorsys(). In same manner xBase++ provides an errorsys.prg.


It's another false theory. To override the default core error 
handler, you only need to pass yours in a new codeblock, 
which calls your own handler, which should have a different 
name than the default core one.

Maybe you meant GETSYS.PRG, but if you do that 
correctly by overriding the whole original object, no 
multiple definition will occur.

In both languages the first appearance of a function in link process counts, like in competive life. OOP theory seem to define vice versa the 'overriding' of inheritated methods, here the last runner wins.


Completely false in general. And the meme continues...

-- Viktor

Klas Engwall

unread,
Jan 24, 2013, 9:06:44 AM1/24/13
to harbou...@googlegroups.com
Hi Rolf,

> to follow your style, dear Klas:
>
> .#ifdef MYPROJECT
> . my_CommonFunction()
> .#else
> . CommonFunction()
> .#endif
>
> will lead to
>
> a.) same as before, one of this both functions must be present at
> linking time.

Yes, one of them must of course be present at link time. Or if
my_CommonFunction() is only a dummy (you mentioned having dummy
functions that only return an empty string), then you can do this instead:

#ifndef MYPROJECT
CommonFunction()
#endif

and skip the empty my_CommonFunction() entirely

> b.) destroys the modularity even more - this my_CommonFunction() belongs
> to app-source, not to lib source.

You can do it either way with the functions that your file manager calls
- in the lib or in the project. And and as long as the functions
names are different you can have both functions present in the lib
without risk of getting them mixed up and confusing the project.

> c.) that whole lib-code for every app had to be rebuilded just before.

No. If we return to your file manager, you can break *IT* out of the lib
and compile it into each project that needs it - with all alternate
behaviours guarded with #ifdef MYPROJECT or #ifdef MYOTHERPROJECT or
whatever you want to call your settings. And then you define your
settings with -DMYPROJECT or -DMYOTHERPROJECT etc in the hbp file. In
the pre-compiled lib, keep only the functions that are always consistent
and need no external tricks. That reduces the risk of messing things up.

> Not a matter of needed time ( my years old 3GHz QC need for my 75K lib
> lines 20 sec ) - but a more
> matter of confusing: did i compiled lib source just right with
> -dMYPROJECT for this project.

No, there is no reason to recompile the entire lib for every project.
You said that your file manager uses functions that exist in different
versions, a real version and a dummy version. *THAT* is confusing and
bug prone. In reality you have two different file managers, and which
version is used in a given project depends on an external trick that you
provide via the link script. If someone takes over your project and does
not understand the trick (or you make a simple mistake one morning when
you have a hangover :-) ), the wrong file manager version might get
linked into the application, Instead, I am saying that if you keep that
particular module out of the lib and compile it with the other project
sources (you can still keep the source file in the lib sources
directory), then you can easily document in the file manager sources
what you want to happen when this or that constant is defined. Like with
#ifdef MYPROJECT or #ifndef MYPROJECT

> I beg your pardon dear Klas, but here i see at least same amount of
> possibilies for flops.

That is what I see with your approach. Mine avoids it. :-)

> A codeblock, perhaps as a par, like, i bow to great source master Viktor
> advised,
> is a solution - but therefore i need to re-design this source parts:
>
> .FUNCTION special(bBlockPar)
> . LOCAL bCommon := {|| QOUT(" i do not harm ") }
> . IF VALTYPE(bBlockPar) == "B"
> . bCommon := bBlockPar
> . ENDIF
> . EVIL(bCommon) // ;-)

OK, but where do you decide if the argument sent to the function will be
a codeblock or not? Wouldn't that be something like

#ifdef MYPROJECT
Special( NIL )
#else
Special( bBlock )
#endif

So you still need two different function calls in your file manager,

Regards,
Klas

elch

unread,
Jan 24, 2013, 6:19:09 PM1/24/13
to harbou...@googlegroups.com

One more,


so that we all - and very me - feel a little bit better: i now have a very 'clean' lib area, even without a special #ifdef for any project.

My harbour project just now fully link without ! allowing dup warnings.


----

But one more & last to this living meme:

before you argument against: not only i see the original clipper tools as most important extension to clipper - also xBase++ and Flagship does so and have an equivalent for them.


They maybe be the ultimate exeption of a general meme rule:

the 'extended driver' nt2gr50.obj [ctgr.obj] from Nantucket Tools [after sold to CA renamed to CA Clipper Tools] at least since 5.0.


Here i.e. the function MAXROW(.T.) [internal: __gtmaxrow(), ...] and a whole bunch more functions are duplicated.

Rtlink does -not- warn about duplicates in clipper.lib, because it only search in .lib files for functions which it doesn't already have collected from .obj fiiles, as i remember right.


But beloved Blinker ! does very well warn about duplicates in nt2gr50.obj and clipper.lib: 1004: .... duplicate symbol ....


[ translated description from my NG doc ]

DEFINE command: "'<Symbol>" doubly contained in <filename (Modulname)>)

This indicates, as that symbol <Symbol> public in the first module
was defined, or a DEFINE command has given a public symbol
which already appears in the second module.
This happens when two separate procedures in. OBJ or. LIB
Files and have the same name. The first symbol is found
one which will be integrated into the application. The second symbol
is ignored.



ONE line live example from link-run:

BLINKER : 1004 : NT2GR50.OBJ(NT50) : '__GTMAXROW' is duplicated in CLIPPER.LIB(GT)


i count there for my (still living & fine running) old app 54! duplicate functions.



--

sometime a meme _can_ have a forgotten orign.


BUT now i'm quite to this thematic - before anybody get a wrong sense from me,

that i'm fresh here in list to only annoy other, or i even must be every time at right

-- that is in never no way my intention !


Clipper is dead, long live Harbour

finest Regards

Rolf

vszakats

unread,
Jan 24, 2013, 6:40:19 PM1/24/13
to harbou...@googlegroups.com

Here i.e. the function MAXROW(.T.) [internal: __gtmaxrow(), ...] and a whole bunch more functions are duplicated.

Rtlink does -not- warn about duplicates in clipper.lib, because it only search in .lib files for functions which it doesn't already have collected from .obj fiiles, as i remember right.


MAXROW() dirty parameter extension was an idiotic one 
from CA-Tools. It won't make this practice good, in fact it 
caused many problems when porting to Harbour.

i count there for my (still living & fine running) old app 54! duplicate functions.


Ouch!

sometime a meme _can_ have a forgotten orign.


Well, Harbour's former (now deleted) and xHarbour's still 
active 'hbmake' tool has these switches enabled by default.
Maybe other tools do that too, I don't know.
For sure they won't do much good for the reputation of 
the xBase "ecosystem".
Unless the goal is to offer a false sense of correctness.

-- Viktor

elch

unread,
Jan 25, 2013, 6:59:49 AM1/25/13
to harbou...@googlegroups.com

Hi, hero Viktor


MAXROW() dirty parameter extension was an idiotic one 
from CA-Tools. It won't make this practice good, in fact it 
caused many problems when porting to Harbour.

i would never wage to call Nantucket tools 'idiotic' - they are made by old heroes.


( BTW. i never use name: CA Tools - so they are named only since V5.3. And this CA has done nothing good for clipper, just bought 'name' Clipper and reactivated many years after finest 5.2e for a very short time some heroes of Nantucket to produce what a buggy mess with 5.3a - to shut silence on Clipper, to propagate their own database solution -- just for completeness of history.)


With this -moveable- windows in the main window Nantucket invented, my app two decades later still looks modern. And in this context it made very much sense to use same MAXROW() as before for the whole screen. It led to the situation, that your old source parts were 100% further useable, without any change at it.


Other time, other concept ...


Regards

Rolf

 

vszakats

unread,
Jan 25, 2013, 7:35:17 AM1/25/13
to harbou...@googlegroups.com


On Friday, January 25, 2013 12:59:49 PM UTC+1, elch wrote:

Hi, hero Viktor


MAXROW() dirty parameter extension was an idiotic one 
from CA-Tools. It won't make this practice good, in fact it 
caused many problems when porting to Harbour.

i would never wage to call Nantucket tools 'idiotic' - they are made by old heroes.


Well, this decision was one, I'm sure they had some reasons,
but sometimes it happens. With "heroes" even ;) In this case 
it could be they did the extension in Nantucket Tools / C'87 
times, where it might have worked due the way Clipper libs 
were structured or with available linker tool's default settings,
but since it's a hack depending on external factors, it cannot 
work reliably when those external factor changes in certain 
ways. Multiple definitions is as archetype of this kind.

( BTW. i never use name: CA Tools - so they are named only since V5.3. And this CA has done nothing good for clipper, just bought 'name' Clipper and reactivated many years after finest 5.2e for a very short time some heroes of Nantucket to produce what a buggy mess with 5.3a - to shut silence on Clipper, to propagate their own database solution -- just for completeness of history.)


Well, for sure CA was not a "wunderkid" of the tech companies ;)
It always seemed like a money making business of the dirty kind.
Apparently it still makes more than 1b+ USD per year.

In Harbour sources we typically refer as CA-* for Clipper and Tools 
because these are the latest reference versions we're aiming for.
But the "*" in the CA-Cl*pper name is there for a reason ;)
 

With this -moveable- windows in the main window Nantucket invented, my app two decades later still looks modern. And in this context it made very much sense to use same MAXROW() as before for the whole screen. It led to the situation, that your old source parts were 100% further useable, without any change at it.


The idea was good, but its implementation was a bad solution that 
only postponed the cost of the change into the future.

-- Viktor

Reply all
Reply to author
Forward
0 new messages