C++ undefine reference to
Hallo,
bin hier langsam am verzweifeln ... vieleicht findet jemand den Fehler auf anhieb... Danke dafür schonmal...
Habe 3 Files:
infovertiefung.cpp
TDate.cpp
und TDate.h
Wenn ich compiliere (ob mit oder ohne makefile) kommt die Fehlermeldung:
infovertiefung.cpp.text+0x2b): undefined reference to `TDate::getday()'
collect2: ld gab 1 als Ende-Status zurück
make: *** [output] Fehler 1
Meines erachtens heißt das doch, dass TDate::getday() nicht deklariert ist ... aber ist sie doch oder übersehe ich das offensichtliche?!
P.S. Ja der Code ist furchtbar aber Kosmetik kommt dann wenn es funktioniert ....
bin hier langsam am verzweifeln ... vieleicht findet jemand den Fehler auf anhieb... Danke dafür schonmal...
Habe 3 Files:
infovertiefung.cpp
#include <stdio.h>
#include "TDate.h"
int main(){
TDate test(123);
printf("hallo welt\n");
int a = test.getday();
cout << a << endl;
}
TDate.cpp
#include "TDate.h"
int day;
int testit(){
cout << "hmm" << endl;
}
int TDate::getday(){
return day;
}
und TDate.h
#ifndef TDATE_H
#define TDATE_H
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <time.h>
using namespace std;
class TDate {
public:
TDate(){};
TDate(int a):day(a) {};
int getday();
void testit();
// int getmonth();
// int getyear();
// string getstring();
// void print();
// void tprint();
//private:
time_t time;
int day;
};
#endif {{comment_single_line_double_slash:6}}
Wenn ich compiliere (ob mit oder ohne makefile) kommt die Fehlermeldung:
infovertiefung.cpp.text+0x2b): undefined reference to `TDate::getday()'
collect2: ld gab 1 als Ende-Status zurück
make: *** [output] Fehler 1
Meines erachtens heißt das doch, dass TDate::getday() nicht deklariert ist ... aber ist sie doch oder übersehe ich das offensichtliche?!
P.S. Ja der Code ist furchtbar aber Kosmetik kommt dann wenn es funktioniert ....
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 334434
Url: https://administrator.de/contentid/334434
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
9 Kommentare
Neuester Kommentar
Also ich hab mal Deinen Code kopiert und als .cc Dateien gespeichert um mit gcc oder g++ die Dateien zu compilieren.
Dabei kommt dann solche Fehlermeldung:
TDate.cc:9:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Ich hab mal diverse andere Programme genommen da geht alles perfekt.
Gruss
Dabei kommt dann solche Fehlermeldung:
TDate.cc:9:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Ich hab mal diverse andere Programme genommen da geht alles perfekt.
Gruss
Hallo,
ich progge hier auf ner mac moehre und der versucht hier ueber xcode zu compilieren und das obwohl ich es mit gcc oder g++
versuche.
So bekomme ich dann mit gcc -v -Wall infovertiefung.cc -o infovertiefung folgende Fehlermeldung:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Wie gesagt bei anderen Programmen geht es ohne Probleme.
Werde das mal meinem Raspberry probieren.
Gruss
ich progge hier auf ner mac moehre und der versucht hier ueber xcode zu compilieren und das obwohl ich es mit gcc oder g++
versuche.
So bekomme ich dann mit gcc -v -Wall infovertiefung.cc -o infovertiefung folgende Fehlermeldung:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Wie gesagt bei anderen Programmen geht es ohne Probleme.
Werde das mal meinem Raspberry probieren.
Gruss
Ich habe deine Dateien mal angepasst... So wie ich es schreiben würde...
So lässt es sich bei mir (gcc unter windows) compilieren.
Grüße, Mooswitz
//filename tdate.h
#ifndef _TDATE_H_
#define _TDATE_H_
#include <iostream>
//#include <stdio.h>
#include <string.h>
#include <time.h>
using namespace std;
class TDate {
public:
TDate();//{}<- entfernt
~TDate();//Destruktor fehlte
TDate(int a):day(a){};//{}<-entfernt
int getday(int);
void testit();
// int getmonth();
// int getyear();
// string getstring();
// void print();
// void tprint();
private://Variablen ruhig Privatisieren
time_t time;
int day;
};
#endif
//filename: tdate.cpp
#include "tdate.h"
TDate::TDate()//Konstruktor Definieren
{
}
TDate::~TDate()//Destruktor Definieren
{
}
void TDate::testit(){//Klassenname fehlte, außerdem ist es void und nicht int
cout << "hmm" << endl;
}
int TDate::getday(int day){
return day;
}
//filename: infovertiefung.cpp
#include <stdio.h>
#include "tdate.h"
int main(){
TDate test;
printf("hallo welt\n");
int a = test.getday(123);
test.testit();
cout << a << endl;
}
So lässt es sich bei mir (gcc unter windows) compilieren.
Grüße, Mooswitz