Harbour non mi compila i prg fatti con Clipper

178 views
Skip to first unread message

Alfredo Aurora

unread,
Apr 17, 2020, 1:27:02 PM4/17/20
to Harbour supporto utenti in italiano
Buonasera a tutti, ho provato a linkare assieme al prg tutte le librerie disponibili con Harbour, e alcune anche se riconoscono tutte le funzioni che ho usato non mi consentono la compilazione. Non credevo fosse così difficile lavorare su Harbour. Cerco un aiuto. Grazie tante 

Francesco Perillo

unread,
Apr 17, 2020, 1:37:12 PM4/17/20
to harbo...@googlegroups.com
Ciao, dovresti in primis dirci due parole su come stai compilando... harbour ha un sistema chiamato hbmk2... lo stai usando?
se si, al termine ti dice quali sono le funzioni che non ha trovato, posta qui l'elenco
se non lo usi... inizia a farlo, in caso chiedi

On Fri, Apr 17, 2020 at 7:27 PM Alfredo Aurora <alfredo...@gmail.com> wrote:
Buonasera a tutti, ho provato a linkare assieme al prg tutte le librerie disponibili con Harbour, e alcune anche se riconoscono tutte le funzioni che ho usato non mi consentono la compilazione. Non credevo fosse così difficile lavorare su Harbour. Cerco un aiuto. Grazie tante 

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Harbour supporto utenti in italiano" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a harbourITA+...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/harbourITA/d87b1eb0-8074-4e0f-8936-5f5870191edc%40googlegroups.com.

Alfredo Aurora

unread,
Apr 17, 2020, 3:36:32 PM4/17/20
to harbo...@googlegroups.com
Buonasera, si certo compilo con hbmk2. Già qualche programma in Clipper l'ho compilato e tutto sommato, anche se ha qualche problema di grafica, funziona. Il problema grande è nato quando ho cercato di compilare un gran programmone che comprende oltre 200 prg e tante funzioni udf create da me e altre matematiche come sin, cos, ecc oltre che grafiche come setpixel, gline ecc prese da librerie esterne come le Clipper tools e la Fastlib. Compilando solo senza linkare librerie mi dava tantissimi errori perché  non riconosceva tutte le funzioni, non solo quelle delle librerie esterne ma anche i miei udf di sicuro perché utilizzano qualche loro funzione. Non so che fare a questo punto, oggi ho fatto la prova a linkare assieme al prg una per volta tutte le librerie di harbour di cui dispongo, alcune hanno riconosciuto quelle funzioni ma mi da un errore come se non conoscesse la libreria. Non so cosa fare. Mi faccia sapere grazie tante in anticipo. Buona serata

alfredo...@gmail.com

unread,
Jan 28, 2021, 5:24:40 AM1/28/21
to Harbour supporto utenti in italiano
Buongiorno a tutti, ancora problemi con la compilazione di programmi scritti in Clipper, compilando un file.prg mi da tanti errori quante sono le funzioni udf che ho creato in clipper e anche le funzioni da librerie esterne. Vi mando una foto di alcuni messaggi d'errore. Ma le udf fatte in Clipper Harbour le riconosce? C'è qualche nuova sintassi per le udf in Harbour? Devo fare qualche file header e inserirlo nel main? Come? Io ho tutte le sorgenti .prg delle udf, cosa devo fare per inserirle nel main? Perchè mi sono accorto che forse il vecchio comando DO è indigesto ad Harbour, o no? Mi dice per ognuna delle funzioni undefined reference to "HB_FUN_nomefunzione" . Perchè?messaggi d'errore harbour.jpgVi ringrazio anticipatamente. Buona Giornata

Maurizio la Cecilia

unread,
Jan 28, 2021, 6:30:40 AM1/28/21
to harbo...@googlegroups.com
Buongiorno,
di sicuro hai problemi su come utilizzi i file .hbp e .hbc.
Dovresti inviare non la lista degli errori, ma i file che ti ho detto, in modo da capire perché il linker non riconosce le tue udf e le librerie esterne (a proposito, sei sicuro che siano compatibili almeno con i 32 bit?).
Con gli elementi che fornisci non si può fare una diagnosi.
Saluti.
--
Maurizio

Alfredo Aurora

unread,
Jan 28, 2021, 6:56:29 AM1/28/21
to harbo...@googlegroups.com
Che siano compatibili con i 32 bit non lo so proprio, io utilizzavo clipper 5.2 sotto dos era quindi sicuramente a 16 bit. Per quanto riguarda le hbct e l'altra, io non le utilizzo, compilo solo con hbmk2 filemain.prg

Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/harbourITA/2pBRyVfmoEM/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a harbourITA+...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/harbourITA/CAGDVDAgvTobztNfuTxoHgSA5hrbG24WUd2biO3c1G29xcqRqtA%40mail.gmail.com.

Alfredo Aurora

unread,
Jan 28, 2021, 6:59:16 AM1/28/21
to harbo...@googlegroups.com
Cosa sono le hbc e le hbp? Purtroppo Harbour sembra avere tante informazioni ma a me non risulta perché nessuno spiega le sintassi e come funziona Harbour, ed è una grossa pecca. Di clipper esistevano decine di manuali 

Alfredo Aurora

unread,
Jan 28, 2021, 7:18:32 AM1/28/21
to harbo...@googlegroups.com
Se vuole le spedisco quei file

Maurizio la Cecilia

unread,
Jan 28, 2021, 8:50:04 AM1/28/21
to harbo...@googlegroups.com
Non mi servono i prg, ma gli script per il linker.
Prova a seguire le informazioni che trovi qui:
Se hai bisogno di aiuto e vuoi usare una piattaforma di videoconferenza che consente di condividere lo schermo posso provare a darti una mano per impostare la compilazione del tuo progetto.


Mario Rossi

unread,
Jan 29, 2021, 3:02:50 AM1/29/21
to Harbour supporto utenti in italiano

Ciao Alfredo,

anche io, inizialmente ho avuto difficoltà ad utilizzare Harbour ma ho risolto in questo modo.

Innanzitutto ti consiglio di creare un file BAT con le seguenti righe da eseguire ogni volta apri il Prompt MS-DOS per preparare l’ambiente di lavoro (si presume che harbour sia installato in c:\)

* File Bat

SET INCLUDE=C:\HB32\INCLUDE

SET LIB=C:\HB32\LIB

SET OBJ=C:\HB32\OBJ

path=%path%;C:\HB32\BIN;C:\SYNWRITE

* fine file bat

// SYNWRYTE è l'editor che utilizzo io e, quindi, non necessario

Successivamente per compilare il tuo sorgente ti consiglio di creare un file HBP con il seguente contenuto:

* file HBP

-gui

-gtwvt

-gtwvG

# -inc

TuoSorgente1.prg

..

..

TuoSorgenteN.prg

-lhbnf.hbc

-lhbct.hbc

-lxhb.hbc

-ICON=IMMAGINE.ICO

# -compr

#-run

* fine file HBP

Dove:

1) -gui, -gtwvt, -gtwvg, per dirla sempicisticamente,  abilitano una finestra DOS (quando avvii il tuo programma viene eseguito in una finestra DOS separata da quella che stai usando)

2) -inc compila soltanto i sorgenti che sono stati modificati incrementando la velocità di compilazione (il cancelletto disabilita la riga come REM nei file BAT)

3) TuoSorgente1, …, …, TuoSorgenteN sono i sorgenti del tuo programma (ovviamente il primo deve essere il sorgente principale)

4) -lhbnf.hbc, -lhbct, lxhb.hbc sono le librerie aggiuntive usate più spesso (lhbnf.hbc, ad esempio, è la libreria clipper nanfor.lib)

E’ possibile che ti possano servire anche altre librerie e, in questo caso è lo stesso compilatore che ti suggerisce quale inserire (ad esempio se non inserisci -lhbnf e la sua presenza è necessaria, al termine della compilazione spunterà un messaggio che ti suggerisce di aggiungere l’opzione hbnf.hbc per le funzioni mancanti).

5)-ICON= serve ad assegnare un’icona all’eseguibile (in questo caso l’icona chiamata immagine.ico)

6) -compr serve a comprimere l’eseguibile

7) -run esegue il programma al termine della compilazione

Una volta salvato il file (ti ricordo che l’estensione deve essere .HBP puoi compilare il programma con il comando

hbmk2 NomeFile.HBP

eventualmente puoi aggiungere l’opzione /b per usare il debug (il CLD di clipper)

hbmk2 NomeFile.HBP /b

Spero di esserti stato utile.

Francesco Perillo

unread,
Jan 29, 2021, 3:18:40 AM1/29/21
to harbo...@googlegroups.com

L'unica riga necessaria è quella del PATH.

hbmk2 automaticamente genera le altre.

Francesco Perillo

unread,
Jan 29, 2021, 3:27:41 AM1/29/21
to harbo...@googlegroups.com
On Thu, Jan 28, 2021 at 11:24 AM alfredo...@gmail.com <alfredo...@gmail.com> wrote:
Perchè mi sono accorto che forse il vecchio comando DO è indigesto ad Harbour, o no?

Mi sembra di ricordare che clipper quando incontrava un DO automaticamente compilava un file con quel nome. Harbour non lo fa.

Quindi la soluzione che ti ha proposto Mario in ultima battuta e Maurizio prima e, diciamo, "standard" nello sviluppo Harbour, è quella di creare un file con estensione .hbp e elencare tutti i nomi di file che fanno parte del tuo progetto.

Questo file .hbp può essere semplice e anche complesso. Mario ti ha indicato alcuni parametri che sono interessanti, ad esempio il -inc.

Altro parametro interessante è -hblib
Se hai una libreria che viene usata da diversi eseguibili puoi elencare i .prg di quella libreria e creare un .lib (o .a a seconda del compilatore) e quindi usarla in diversi .hbp.

Stiamo però andando oltre.

Parti dalla base:
crea progetto.hbp
elenca tutti i file .prg, senza alcun altro parametro
quindi compila con
hbmk2 progetto.hbp

e vedi quello che succede.

PS: vedo dalla foto che potresti aver usato in clipper una libreria grafica... non è detto che sia supportata in harbour...


Alfredo Aurora

unread,
Jan 29, 2021, 6:52:39 AM1/29/21
to harbo...@googlegroups.com
Buongiorno sono Alfredo, ma in questo progetto. hbp devo inserire i file. prg o funzioni, che mi danno errore o tutti i file che compongono il mio main? Mi faccia un esempio più chiaro. Inoltre, certo che vi sono funzioni grafiche, perché in Harbour non si fa grafica? A me serve solo accendere un pixel. Mi sembra di aver visto qualche libreria grafica. Più passa il tempo e più mi rendo conto che questo clipper e Harbour sono il linguaggio peggiore da utilizzare per me che tratto argomenti di  fisica-matematica con grafica. 

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Harbour supporto utenti in italiano" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a harbourITA+...@googlegroups.com.

Francesco Perillo

unread,
Jan 29, 2021, 7:16:03 AM1/29/21
to harbo...@googlegroups.com
Parte 1:
se ho i sorgenti divisi in 3 file, a.prg b.prg e c.prg nel file progetto.hbp andrò a scrivere 3 righe:
a.prg
b.prg
c.prg

hbmk2 progetto.hbp compilerà tutti e 3 i files mettendoli insieme in un unico eseguibile.

Parte 2:
harbour, ma anche clipper, non nasce per la grafica. clipper non mi ricordo avesse funzioni per la grafica, occorreva usare librerie esterne. Inoltre volendo fare grafica sotto windows e non sotto msdos andiamo a aprire una casistica enorme che - sinceramente - personalmente eviterei.

Quindi, no, decisamente harbour non è adatto per " argomenti di  fisica-matematica con grafica."

Poi sicuramente qualcuno mi smentirà perché è possibile che facendo così o cosà si potrebbe ottenere qualcosa...

Alfredo Aurora

unread,
Jan 29, 2021, 7:20:15 AM1/29/21
to harbo...@googlegroups.com
Si, io utilizzavo una libreria esterna, la Fastlib, nella quale c'erano diverse funzioni per la grafica, purtroppo in Harbour la fastlib non c'è ma comunque vi sono parecchie librerie grafiche. Va bene la ringrazio tanto, proverò così. Buona giornata 

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Harbour supporto utenti in italiano" di Google Gruppi.
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/harbourITA/2pBRyVfmoEM/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a harbourITA+...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/harbourITA/CADPHLr9-o-XWB4VRnudz7%2BK09L-vGJD6%2BxBBSB4JpyWr6f23fw%40mail.gmail.com.

Alfredo Aurora

unread,
Jan 29, 2021, 7:24:29 AM1/29/21
to harbo...@googlegroups.com
Ma scusami, io ho il file main dove c'è Procedure main, questo file mi linka tutti i file che partecipano al programma, il file. hbp che contiene tutti i prg lo devo inserire all'inizio del main con include? 

Francesco Perillo

unread,
Jan 29, 2021, 7:25:37 AM1/29/21
to harbo...@googlegroups.com
no.
è un file a parte. contiene solo elenco dei nomi file

Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a harbourITA+...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/harbourITA/CAGyqBHe-rkc5RLXHb3_DOf2apcZES5zxme%3Duck5tBm1uLVSQmA%40mail.gmail.com.

Mario Rossi

unread,
Jan 29, 2021, 11:18:18 AM1/29/21
to harbo...@googlegroups.com
Per maggiore chiarezza ti mando un esempio completo:
Si tratta di un programma scritto ed inviato da un utente del gruppo internazionale che ho diviso in 2 sorgenti per farti capire come unire più sorgenti.
Manca solo il file BAT che non è possibile allegare perche non viene accettato per 'motivi di sicurezza' ma che, comunque puoi creare tu.

1) Scarica tutto in una cartella
2) Esegui il file .BAT
3) Digita: hbmk2 progetto.hbp
4) Premi invio

a questo punto:
1) Verranno compilati i sorgenti snake.prg e classe.prg
2) Verrà creato il file snake.exe
3) Verrà eseguito il programma (per l'opzione -run all'interno di progetto.hbp

Saluti


Mail priva di virus. www.avast.com

Classe.PRG
Progetto.HBP
Snake.PRG

Alfredo Aurora

unread,
Jan 29, 2021, 1:42:51 PM1/29/21
to harbo...@googlegroups.com
Scusami ma non riesco a fare il .bat

Mario Rossi

unread,
Jan 30, 2021, 2:11:36 AM1/30/21
to harbo...@googlegroups.com
Ti invio anche il file BAT. Per poterlo allegare gli ho dovuto aggiungere l'estensione .ppp che, ovviamente, devi eliminare (nome corretto HARB32.BAT.
Ti ricordo che l'ho settato supponendo che hai installato Harbour in C:\ in caso contrario devi cambiare la path all'inerno del file BAT.

Ciao

Mail priva di virus. www.avast.com

HARB32.BAT.ppp

Alfredo Aurora

unread,
Jan 30, 2021, 6:11:56 AM1/30/21
to harbo...@googlegroups.com
Va bene ti ringrazio tantissimo. Provo e ti faccio sapere. Buona giornata 

Alfredo Aurora

unread,
Jan 30, 2021, 7:46:32 AM1/30/21
to harbo...@googlegroups.com
Buongiorno Mario, ho fatto tutto quello che mi hai detto, con una modifica al.bat perchè non è hb32 ma hb30. ho copiato il .bat in c: dove c'è appunto hb30, ho creato il .hbp con le tue istruzioni ed inserendo tutti i miei prg, ho compilato con hbmk2 e ancora non mi compila, ma almeno non mi da più tutti quei messaggi d'errore, ma altri, vedi se capisci cosa succede. Hai tanta pazienza con me grazie sempre.
errori harbour.jpg

Francesco Perillo

unread,
Jan 30, 2021, 9:58:45 AM1/30/21
to harbo...@googlegroups.com
hai messo qualcosa di sbagliato nel file .hbp

copia incollalo qui

20210130_155706.jpg

Alfredo Aurora

unread,
Jan 30, 2021, 11:03:31 AM1/30/21
to harbo...@googlegroups.com
Mylib_hbp.hbp

Alfredo Aurora

unread,
Jan 30, 2021, 11:34:57 AM1/30/21
to harbo...@googlegroups.com
tranne che non accetta la sintassi con la quale ho chiamato il file e cioè mylib_hbp.hbp
Reply all
Reply to author
Forward
0 new messages