NON MI CI RACCAPEZZO in compilazione su Linux

53 views
Skip to first unread message

Vincenzo Cantarelli

unread,
Jun 18, 2024, 12:29:59 PM6/18/24
to Harbour supporto utenti in italiano
Salve sto facendo delle prove. Ho compilato correttamente su Windows, ma non riesco con LINUX:
prova.hbp

   prova
   provaprg1
   provaprg2
   provaproced

prova.prg
PROCEDURE Main
SET PROCEDURE TO provaproced
    ? "Hello from PROVA"

    DO proced1
    DO proced2
RETURN

provaprg1.prg
PROCEDURE provaprg1
    set procedure to provaproced
    ? "Calling proced1 from PRG1"
    do proced1
    ? "Calling proced2 from PRG1"
    do proced2
RETURN

provaprg2.prg
PROCEDURE provaprg2
    set procedure to provaproced
    ? "Calling proced1 from PRG2"
    do proced1
    ? "Calling proced2 from PRG2"
    do proced2
RETURN

provaproced.prg
PROCEDURE proced1
    ? "This is proced1"
RETURN

PROCEDURE proced2
    ? "This is proced2"
RETURN

ecco il risultato della compilazione:

hbmk2 prova.hbp
Harbour 3.2.0dev (r2405310955)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'prova.prg'...
Compiling 'provaproced.prg'...
Lines 7, Functions/Procedures 3
Generating C source output to '/tmp/hbmk_u1pl35.dir/prova.c'... Done.
Compiling 'provaprg1.prg'...
Compiling 'provaproced.prg'...
Lines 7, Functions/Procedures 3
Generating C source output to '/tmp/hbmk_u1pl35.dir/provaprg1.c'... Done.
Compiling 'provaprg2.prg'...
Compiling 'provaproced.prg'...
Lines 7, Functions/Procedures 3
Generating C source output to '/tmp/hbmk_u1pl35.dir/provaprg2.c'... Done.
Compiling 'provaproced.prg'...
Lines 7, Functions/Procedures 2
Generating C source output to '/tmp/hbmk_u1pl35.dir/provaproced.c'... Done.
/usr/bin/ld: /tmp/hbmk_u1pl35.dir/provaprg1.o: in function `HB_FUN_PROCED1':
provaprg1.c:(.text+0x20): multiple definition of `HB_FUN_PROCED1'; /tmp/hbmk_u1pl35.dir/prova.o:prova.c:(.text+0x20): first defined here
/usr/bin/ld: /tmp/hbmk_u1pl35.dir/provaprg1.o: in function `HB_FUN_PROCED2':
provaprg1.c:(.text+0x40): multiple definition of `HB_FUN_PROCED2'; /tmp/hbmk_u1pl35.dir/prova.o:prova.c:(.text+0x40): first defined here
/usr/bin/ld: /tmp/hbmk_u1pl35.dir/provaprg2.o: in function `HB_FUN_PROCED1':
provaprg2.c:(.text+0x20): multiple definition of `HB_FUN_PROCED1'; /tmp/hbmk_u1pl35.dir/prova.o:prova.c:(.text+0x20): first defined here
/usr/bin/ld: /tmp/hbmk_u1pl35.dir/provaprg2.o: in function `HB_FUN_PROCED2':
provaprg2.c:(.text+0x40): multiple definition of `HB_FUN_PROCED2'; /tmp/hbmk_u1pl35.dir/prova.o:prova.c:(.text+0x40): first defined here
/usr/bin/ld: /tmp/hbmk_u1pl35.dir/provaproced.o: in function `HB_FUN_PROCED1':
provaproced.c:(.text+0x0): multiple definition of `HB_FUN_PROCED1'; /tmp/hbmk_u1pl35.dir/prova.o:prova.c:(.text+0x20): first defined here
/usr/bin/ld: /tmp/hbmk_u1pl35.dir/provaproced.o: in function `HB_FUN_PROCED2':
provaproced.c:(.text+0x20): multiple definition of `HB_FUN_PROCED2'; /tmp/hbmk_u1pl35.dir/prova.o:prova.c:(.text+0x40): first defined here
collect2: error: ld returned 1 exit status
hbmk2[prova]: Error: Running linker. 1
gcc '/tmp/hbmk_u1pl35.dir/prova.o' '/tmp/hbmk_u1pl35.dir/provaprg1.o' '/tmp/hbmk_u1pl35.dir/provaprg2.o' '/tmp/hbmk_u1pl35.dir/provaproced.o'   -Wl,--start-group -lhbcplr -lhbdebug -lharbour   -Wl,--end-group -oprova -L/usr/local/lib/harbour

hbmk2: Error: Referenced, missing, but unknown function(s): PROCED1(),
       PROCED2()

STO USCENDO PAZZO.... NON CAPISCO DOV'E L'ERRORE qualcuno mi può aiutare?
Grazie

Domenico D'Oria

unread,
Aug 21, 2024, 7:26:51 AM8/21/24
to Harbour supporto utenti in italiano
Ciao Vincenzo, invece che dichiarare come procedure, prova a dicharare come funzioni.


Hi Vincenzo ,instead of declaring as procedures, try declaring as functions

regards
Reply all
Reply to author
Forward
0 new messages