Gå til innhold

Compile feil, hva er gale? Enkelt program, klasse?


Anbefalte innlegg

Hei!

 

Jeg har følgende filer:

 

main.cpp

#include "car.h"

 

int main()

{

Car MyCar("BMW");

MyCar.displayCarModell();

return 1;

}

 

car.h

#include <iostream>

#include <string>

 

using std::string;

 

class Car

{

public:

Car(string);

string getCarModell();

void displayCarModell();

void setCarModell(string);

private:

string MyModell;

};

 

car.cpp

using std::string;

using std::cout;

 

public:

Car::Car(string modell)

{

MyModell = modell;

}

string Car::getCarModell()

{

return MyModell;

}

void Car::displayCarModell()

{

cout << MyModell;

}

void Car::setCarModell(string modell)

{

MyModell = modell;

}

private:

string MyModell;

 

Dette blir forsøkt compilet med:

g++ main.cpp -o test

 

Som gir følgende terminal output:

In file included from main.cpp:1:

car.h:15:3: warning: no newline at end of file

main.cpp:8:2: warning: no newline at end of file

/tmp/ccjbPNKK.o: In function `main':

main.cpp:(.text+0xb7): undefined reference to `Car::Car(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'

main.cpp:(.text+0xf0): undefined reference to `Car::displayCarModell()'

collect2: ld returned 1 exit status

 

Hva er det jeg gjør gale? :)

Endret av rat911
Lenke til kommentar
Videoannonse
Annonse

Det gir meg dette:

car.h:16:3: warning: no newline at end of file

main.cpp:8:2: warning: no newline at end of file

/tmp/ccDpBvr9.o: In function `main':

main.cpp:(.text+0xb7): undefined reference to `Car::Car(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'

main.cpp:(.text+0xf0): undefined reference to `Car::displayCarModell()'

collect2: ld returned 1 exit status

 

Mangler jeg noen compileparameters?

Jeg får denne på eksempler direkte kopiert ifra boken også, merkelig at jeg får dette.

Ingen som har peiling?

Endret av rat911
Lenke til kommentar
Mulig feilen ligger i hva slags text-editor (eller format) du bruker til å lage filene med?

8629267[/snapback]

 

Godt forslag, mulig.

Men dette er filer jeg tar rett i fra cden som fulgte med boken da.

:hmm:

8629362[/snapback]

 

 

fungerer her om eg i car.cpp legg til #include "car.h" og tar bort public: og private:

deretter kompilerer eg med

 

g++ main.cpp car.h car.cpp -o test

Lenke til kommentar

En ting til...

 

Dersom du i main.cpp legg til

#include "car.cpp"

 

Da kan du kompilere som du vil

 

g++ main.cpp -o test

 

Det kan også være en fordel å forandre litt på .h fila legg til

#ifndef CAR_H
#define CAR_H
// her er det som du har i fila fra før

#endif

 

Ved å legge til de to linjene i toppen og den på slutten vil det hindre at du inkluderer fila flere ganger og får problemer med kompileringen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...