|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
[C] - problema linking librerie - newbie
ciao a tutti, ho appena provato a seguire delle guide per creare file .h e relative definizioni delle funzioni per poi linkare il tutto in un unico progetto che faccia uso delle funzioni stesse..sembrava una cosa così stupida ma non riesco a capire l'errore che restituisce il compilatore, come test ho scritto del codice mooolto stupido
un file prodotto.h contenente il seguente codice : int prodotto(int); un file prodotto.cpp contentente invece la funzione effettiva, direi ovvia: int prodotto(int numero){ return numero*3; } e infine il main che è il seguente : #include <iostream> #include "prodotto.h" using namespace std; int numero = 15; int main(int argc, char *argv[]) { numero = prodotto(numero); printf("Il numero vale %d \n",numero); system("PAUSE"); } ecco tutto..il programm dovrebbe semplicemente restituire 45..solo che invece in fase di compilazione restituisce: [Linker error] undefined reference to `prodotto(int)' ld returned 1 exit status [Build Error] exe: *** [esperimentoLink.exe] Error 1 c'è qualcosa che sbaglio??..eppure mi sembra di seguire ciò che ho trovato nelle varie guide..sto facendo una confusione terribile help!
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
La struttura e la definizione dei vari file è corretta. Non so quale metodo stai usando per fare il build del tutto ... se un ambiente di sviluppo o a "mano" da linea di comando.
La cosa essenziale è che prodotto.cpp e main.cpp vanno compilati e poi i relativi file oggetto vanno passati al linker per generare infine l'eseguibile. Dal messaggio di errore si evince che il file oggetto di prodotto.cpp non è "entrato" a far parte della fase di link.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
uhm..io uso dev-cpp...in teoria avendo creato un nuovo progetto con annessi vari .h e .cpp pensavo fosse in grado di linkare le varie parti in maniera autonoma..quindi dovrò capire meglio come indicarlo esplicitamente in compilazione
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
che stupido sono..!!...nello smacchinare con i progetti vari che avevo aperto si era generata un pò di confusione e alcune parti si erano perse..guarda caso quelle che servivano a me cioè gli header..le ho riaggiunte al progetto e ora compila correttamente...ok quindi era un semplice problema di incomprensione con dev
![]()
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:56.