000
04.05.2004, 19:19 Uhr
DerSchwarzeSchlumpf
|
hi :)
hab mein c++-programm vollkommen in MS Studio.net geschrieben und dort compiliert es ohne Probleme, Warnings oder Fehlermeldungen und funktioniert auch super.
Das Problem ist: Als Referenzstation für das Testen des Programmes wird der GNU-Compiler verwendet. Doch wenn ich hier die einzelnen .cpp-Files inkludiere, bricht er immer mit unterschiedlichen Fehlermeldungen ab:
"Undefined Reference *bestimmte Methode*"
beispielcode: C:\Programme\Cygwin\bin>g++ c:\temp\labyrinth\define_labyrinth.cpp /cygdrive/c/DOKUME~1/Master/LOKALE~1/Temp/ccL1zVlP.o(.text+0x16d):define_labyrinth.cpp: undefined reference to `Matrix::setMatrixBool(bool, unsigned, unsigned)
einmal davon abgesehen dass ich (totaler c++-anfänger) keine ahnung habe woher die fehlermeldung kommt *g* (schätze aber mal es ist der linker der keine ahnung hat wo er die zugehörige methode findet?) hab ich noch weniger plan wie ich das jetzt beheben kann... . die eingebundenen .h-files hab ich selbstverständlich mit dem #ifnef ausgestattet. beispiel.
C++: |
#ifndef define_labyrinth_h__ #define define_labyrinth_h__
#include "finish_point.h" #include "start_point.h" #include "matrix.h" #include "output_elements.h" #include "input_elements.h" #include "matrix_valiador.h" #include "define_labyrinth.h" #include "matrix_valiador.h"
class DefineLabyrinth { public: DefineLabyrinth(); ~DefineLabyrinth();
void startLabyrinthDefine(Matrix* matrix, StartPoint* start_point, FinishPoint* finish_point,InputElements* input_elements, MatrixValiador *matrix_valiador);
void calculateUnsignedIntegers(char* my_matrix_coordinates, Matrix* matrix, StartPoint* start_point, FinishPoint* finish_point, InputElements* input_elements, MatrixValiador *matrix_valiador); void preDefineMatrix(unsigned column, unsigned row, Matrix* matrix, StartPoint* start_point, FinishPoint* finish_point, InputElements* input_elements, MatrixValiador *matrix_valiador);
void getLineLabyrinth(unsigned row_counter, Matrix* matrix, StartPoint* start_point, FinishPoint* finish_point, InputElements* input_elements);
void columnHandler(char *labyrinth_line, unsigned row_counter, Matrix *matrix, StartPoint *start_point, FinishPoint *finish_point, InputElements *input_elements);
unsigned getUserSignIdentification(char input_variable, InputElements *input_elements); };
#endif
|
könnte es daran liegen, dass ich gewisse .h-files sowohl im .cpp als auch im dazugehörigen .h eingebunden habe? zB matrix.h sowohl im define_labyrinth.cpp und define_labyrinth.h (weil ich bei der übergabe der parameter die klasse brauche). glaube aber dass das eher nichts damit zu tun haben kann (dank des #ifndef, oder)?
wär über hilfe echt dankbar *g*
lg Dieser Post wurde am 04.05.2004 um 21:19 Uhr von Pablo editiert. |