Fehlermeldung: undefined reference to "PutInit()"
-
ich habe ein Projekt mit code blocks unter VM ubuntu 9.04 erstellt, da meldet immer die gleiche Fehler:
g++ -L/home/ubuntu/ice/lib/some_machine -L/usr/lib -o commeter_ec commeter_ec.o -lice `wx-config --libs` -ljpeg -lfftw3 -lraw1394 -ldc1394_control
commeter_ec.o: In functionFind\_new(ObjectList*&, ObjectList*&)': /home/ubuntu/PROJEKTE/Panyu\_230210/commeter\_ec.cpp:2323: undefined reference toPutInit(char*, long)'hier sind meine Quellcode:
---------------
in cm_rect.cpp:
#include <image.h>
#include "commeter.h"
...
#define FNAME "PutInit"
void PutInit(char filename[100],long int pid)
{
FILE *fp;
if((fp=fopen(filename,"w+"))==NULL){
printf("\nDie Initdatei kann nicht geoeffnet werden");
exit(0);
}
fprintf(fp,"%ld",pid);
fclose(fp);
}
#undef FNAME
...
-----------------
in commeter.h:
#include <iostream.h>
#include <float.h>
#include <limits.h>
#include <math.h>
...
void PutInit(char filename[100],long int pid);
...
-----------------
in main.cpp:
#include <iostream.h>
#include <float.h>
#include <limits.h>
#include <math.h>
#include "image.h"
#include "avi2yuv.h"
#include "commeter.h"
#include "TDCIniFile.h"
#include <time.h>
...
int main(int argc, char *argv[])
{
...
PutInit(Filename_init,max_pid);
...
return 0;
}
--------------------
die Funktion PutInit()wurde in cm_rect.cpp definiert, und diese wurde auch in commeter.h deklariert. ich weiß nicht was noch fehlt, da sind noch ein paar andere Funktionen in der Fehlermedlung, die auch auf diese Art und Weise definiert und in Benutzung sind.
Bitte schau jemand darein und mir ein paar Tipps geben, bin echt in Verzweifel... :
-
hw3 schrieb:
die Funktion PutInit()wurde in cm_rect.cpp definiert, und diese wurde auch in commeter.h deklariert. ich weiß nicht was noch fehlt, da sind noch ein paar andere Funktionen in der Fehlermedlung, die auch auf diese Art und Weise definiert und in Benutzung sind.
Bitte schau jemand darein und mir ein paar Tipps geben, bin echt in Verzweifel... :
Das ist ein Linkerfehler und auch zu erwarten, denn ich sehe nirgendwo, dass du eine cm_rect.o mit linkst. Erstell aus der cm_rect.cpp eine cm_rect.o, genauso wie du die commeter_ec.o erstellt hast. Dann gibst du beim Linken beide Dateien an.
-
Danke! :p ich habe in dem Makefile nachgeschaut, es fehlt tatsächlich die *.o datein für andere *.cpp. jetzt kommen andere Fehlermeldungen, die sind dann Compilerfehler...