|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5159
|
[C++] Errore mai visto in compilazione, mi sapete aiutare?
Ciao.
In azienda mi hanno chiesto un software per calcolare l'esatta elevazione ed azimuth del sole data una data ed una posizione sul globo terrestre. Ho trovato un programma free gia' fatto, pero' quando lo compilo mi da un sacco di errori nella cartella dei file temporanei e non capisco il perche'. Da cosa potrebbe dipendere? Gli errori che ottengo sono i seguenti, piu' sotto allego anche i file. Vanno tutti nella stessa cartella e poi si lancia il makefile. Chi mi sa dare una mano? Anche solo capire da dove saltano fuori questi errori... Grazie mille. ---------- C:\DOCUME~1\matteo\LOCALS~1\Temp/ccGUbaaa.o(.text+0xed):main.cpp: undefined reference to `_imp__geoInitLocation@36' C:\DOCUME~1\matteo\LOCALS~1\Temp/ccGUbaaa.o(.text+0x177):main.cpp: undefined reference to `_imp__geoSunAzElNow@12' C:\DOCUME~1\matteo\LOCALS~1\Temp/ccGUbaaa.o(.text+0x20c):main.cpp: undefined reference to `_imp__geoSunAzEltm@16' C:\DOCUME~1\matteo\LOCALS~1\Temp/ccWMcaaa.o(.text+0x52):geoPoint.c: undefined reference to `_imp__geoGetEllipsoid@24' C:\DOCUME~1\matteo\LOCALS~1\Temp/ccWMcaaa.o(.text+0x25e):geoPoint.c: undefined reference to `_imp__geoGetEllipsoid@24' . . . . . -------- |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
non ho guardato i files allegati, ma si tratta semplicemente del fatto che il linker non riesce a trovare le funzioni geoInitLocation, geoSunAzElNow, ecc.
non so com'è organizzato il progetto ma credo che tu debba agire sul Makefile: devi linkare la libreria che esporta quelle funzioni. |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5159
|
Quote:
|
|
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
il gcc ha l'opzione -l, il MinGW non ricordo (c'era tutta una storia di un casino tra diversi formati Microsoft e GNU: Microsoft usa i .lib, GNU non l'ho mai capito troppo bene).
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5159
|
Quote:
Come faccio a includere la libreria? Devo crearmela a partire da quel file che contiene le definizioni delle funzioni e poi la linko con -l in fase di compilazione? Se la libreria si chiama Pippo.a, per linkarla mi basta aggiungere -lPippo a fine della riga di compilazione? |
|
![]() |
![]() |
![]() |
#6 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5159
|
Quote:
Dai, fai uno sforzo e dammi una mano... ![]() |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Example compilation with GNU C++ with novas already in a library: gcc geoTest.c geoAstro.c geoEllips.c geoPoint.c geoMag.c novas\novas.a with Novas NOT in a library: gcc geoTest.c geoAstro.c geoEllips.c geoPoint.c geoMag.c \ novas\novas.c novas\novascon.c novas\readeph0.c novas\solsys3.c |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5159
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5159
|
Risolto...
Nelle definizioni di quelle funzioni veniva usato un DLL_CALLCONV (penso per creare le DLL in windows), ma in dos non funzionava. tolti quelli ora compila. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:12.