Frysning Skrevet 16. mai 2007 Del Skrevet 16. mai 2007 (endret) 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 16. mai 2007 av rat911 Lenke til kommentar
hishadow Skrevet 16. mai 2007 Del Skrevet 16. mai 2007 (endret) Prøv å #include "car.h" i car.cpp. Også fjern public: og private: string MyModell; fra .cpp. Endret 16. mai 2007 av hishadow Lenke til kommentar
Frysning Skrevet 16. mai 2007 Forfatter Del Skrevet 16. mai 2007 (endret) Det gir meg dette: car.h:16:3: warning: no newline at end of filemain.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 16. mai 2007 av rat911 Lenke til kommentar
hishadow Skrevet 16. mai 2007 Del Skrevet 16. mai 2007 Mulig feilen ligger i hva slags text-editor (eller format) du bruker til å lage filene med? Lenke til kommentar
Frysning Skrevet 16. mai 2007 Forfatter Del Skrevet 16. mai 2007 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. Lenke til kommentar
Zolo Skrevet 16. mai 2007 Del Skrevet 16. mai 2007 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. 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
Zolo Skrevet 16. mai 2007 Del Skrevet 16. mai 2007 treng ikke public og private i cpp fila. Det er satt i .h fila. Lenke til kommentar
Zolo Skrevet 16. mai 2007 Del Skrevet 16. mai 2007 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå