PDA

View Full Version : [C] - problema linking librerie - newbie


Re_Kotc
15-03-2008, 13:50
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!

andbin
15-03-2008, 14:02
c'è qualcosa che sbaglio??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.

Re_Kotc
15-03-2008, 14:18
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

Re_Kotc
15-03-2008, 14:21
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 :D ..grazie ancora per avermi indirizzato sul binario giusto ciao!