Ich arbeitete an meinem Projekt, während ich entschied, dass ich es in Dateien teilen sollte. Wie auch immer, ich hatte Probleme mit diesem Problem, und alle Ratschläge, die ich über Google fand, hatten mit dem Vergessen zu tun, beide Objektdateien zu verknüpfen, die ich richtig mache (zumindest denke ich das).Nicht definierte Referenz, während Kopfzeile in C++
Makefile:
test : class.o main.o
g++ class.o main.o -o test.exe
main.o : main.cpp
g++ main.cpp -c
class.o : class.cpp
g++ class.cpp -c
main.cpp
#include <iostream>
#include "class.h"
using namespace std;
int main() {
Trida * t = new Trida(4);
t->fce();
return 0;
}
class.h
#ifndef CLASS
#define CLASS
class Trida {
private:
int a;
public:
Trida(int n);
void fce();
};
#endif
class.cpp
#include <iostream>
using namespace std;
class Trida {
private:
int a;
public:
Trida(int n) {
this->a = n;
}
void fce() {
cout << this->a << endl;
}
};
Fehlermeldung:
[email protected]:~/Skola/test$ make
g++ class.cpp -c
g++ main.cpp -c
g++ class.o main.o -o test.exe
main.o: In function `main':
main.cpp:(.text+0x26): undefined reference to `Trida::Trida(int)'
main.cpp:(.text+0x54): undefined reference to `Trida::fce()'
collect2: ld returned 1 exit status
make: *** [test] Error 1
Wow, das schnell war. Das Problem ist einfacher als ich dachte. Vielen Dank :-) – Gwynbleidd