Undefined reference to..

di il
7 risposte

Undefined reference to..

Ho un problema con questo errore che non riesco a capire come risolvere. Credo sia un problema di linkaggio tra i file .h e .cpp
vi allego i file .h .cpp (dove vi è l'implentazione delle funzioni) e il file test.cpp (dove svolgo le funzioni per un test)

esame.h

#ifndef ESAME_H
#define ESAME_H
#include <string>

using namespace std;

class esame{
private:
  string nomeEsame;
  bool sostenuto;
  int voto;
public:
  esame();
  esame(string);
  esame(string, int);
  string getEsame();
  void setEsame(string);
  int getVoto();
  void setVoto(int);
  bool isSostenuto();
};
#endif

esame.cpp

#include "esame.h"
#include <string>

esame::esame(){
  sostenuto=false;
}

esame::esame(string n){
  nomeEsame=n;
  sostenuto=false;
}

esame::esame(string n, int v){
  nomeEsame=n;
  voto=v;
  sostenuto=true;
}

string esame::getEsame(){
  return nomeEsame;
}

void esame::setEsame(string n){
  nomeEsame=n;
}

void esame::setVoto(int v){
  voto=v;
}
int esame::getVoto(){
  if(sostenuto)
    return voto;
  return -1;
}

bool esame::isSostenuto(){
  return sostenuto;
}
test.cpp

#include "esame.h"
#include <iostream>
using namespace std;

int main(){
  esame a, b("provab"), c("provac", 18);
  a.setEsame("ziomichele");
  b.setVoto(20);
  cout<<c.getVoto();
  return 0;
}
all'esecuzione di quest'ultimo ho i seguenti errori:

C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0x20): undefined reference to `esame::esame()'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0x58): undefined reference to `esame::esame(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0xaf): undefined reference to `esame::esame(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0xfb): undefined reference to `esame::setEsame(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0x126): undefined reference to `esame::setVoto(int)'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0x136): undefined reference to `esame::getVoto()'
collect2.exe: error: ld returned 1 exit status

7 Risposte

  • Re: Undefined reference to..

    Ma tu hai inserito tutti i file in un progetto o no?
  • Re: Undefined reference to..

    oregon ha scritto:


    Ma tu hai inserito tutti i file in un progetto o no?
    per progetto cosa intendi? tutti e tre i file sono in un'unica cartella
  • Re: Undefined reference to..

    Sono nuovo all'utilizzo di ATOM come faccio a inserire i 3 file in un unico progetto?
  • Re: Undefined reference to..

    Essere in una sola cartella non vuol dire nulla. E quando hai detto che usavi Atom?

    Comunque, cosa fai per compilare?
  • Re: Undefined reference to..

    Hai ragione scusami.

    sicuramente in modo ingenuo faccio solo F5, compile and run. Devo installare qualche pacchetto apposito? Potresti darmi delle delucidazioni a riguardo grazie in anticipo.
  • Re: Undefined reference to..

    Non uso Atom. Ma devi indicare in qualche modo che i du cpp fanno parte di un unico progetto di compilazione
  • Re: Undefined reference to..

    Ho provato a compilare con Eclipse e funziona come deve. Non c’è nessuno che può aiutarmi con Atom?
Devi accedere o registrarti per scrivere nel forum
7 risposte