View Full Version : [C]undefined reference to
federico100mt
12-05-2008, 09:30
ciao a tutti, immagino che ci sia qualcuno che si sia trovato davanti allo stesso problema...
praticamente importando la mia "libreria" .h e non c'è niente da fare, mi da l'errore undefined reference to..
sapete per caso come risolverlo? :cry:
graziee
federico100mt
12-05-2008, 10:31
ok,,, anche tu hai ragione :D
questo è l'errore:
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x4a): undefined reference to `ENopenH@0'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x59): undefined reference to `ENinitH@4'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x13f): undefined reference to `ENopen@12'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x157): undefined reference to `ENsetreport@4'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x169): undefined reference to `ENsetreport@4'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x17b): undefined reference to `ENsetreport@4'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x18d): undefined reference to `ENsetreport@4'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x28c): undefined reference to `ENsetpattern@12'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x30c): undefined reference to `ENsetlinkvalue@12'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x3f4): undefined reference to `ENrunH@4'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x459): undefined reference to `ENgetnodevalue@12'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x4d9): undefined reference to `ENgetlinkvalue@12'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x570): undefined reference to `ENgetlinkvalue@12'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x5a4): undefined reference to `ENnextH@4'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x5cf): undefined reference to `ENcloseH@0'
C:\DOCUME~1\Fede\IMPOST~1\Temp/ccspbaaa.o:ValutaFO.c:(.text+0x5d7): undefined reference to `ENclose@0'
collect2: ld returned 1 exit status
mentre per quanto riguarda il codice che è un simulatore di reti acquedottistiche che si chiama epanet... ho bisogno di utilizzare tutte le sue funzioni, infatti importo la sua
epanet2.h con #include "epanet2.h"
è vero che bisogna mettere un tag -L?
dove si mette? :help:
grazie
DanieleC88
12-05-2008, 11:28
Se il percorso della libreria non è standard, dì a MinGW di cercarlo anche in <percorso> con:
gcc codice.c -L<percorso>
E poi digli anche di collegare il tuo programma ai simboli esportati da <libreria> con:
gcc codice.c -L<percorso> -l<libreria>
federico100mt
12-05-2008, 11:56
penso ci stiamo avvicinando,
si cmq epanet è una libreria,
per fare meglio ho copiato tutti i listati .c nella stessa directory dove lavoro,che è c:\epanet\daTestare
sto provandoa fare
>gcc ValutaFO.c -L<C:\epanet\daTestare\epanet2.h> -l<C:\epanet\daTestare\epanet2.h> -o va
sto scrivendo in arabo?
aaaaa!!!:muro:
DanieleC88
12-05-2008, 12:09
LOL! Io ho scritto <libreria> e via dicendo solo per far vedere che l'opzione -l finiva ed iniziava il nome della libreria... :)
Togli i <> e riprova.
ciao a tutti, immagino che ci sia qualcuno che si sia trovato davanti allo stesso problema...
praticamente importando la mia "libreria" .h e non c'è niente da fare, mi da l'errore undefined reference to..
sapete per caso come risolverlo? :cry:
graziee
è un errore comune
importare il ".h" non significa affatto includere la libreria nel compilato. non è abbastanza... nel .h trovi i prototipi delle funzioni, le varie macro ecc. ma non c'è codice. la liberia, in fase di linking, va aggiunta a parte (ad esempio con il -l o con qualche opzione del tuo ide)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.