Fehler: collect2: ld returned 1 exit status
-
Hallo
Ich bekomme beim kompilieren folgende Fehlermeldung:mx_matrix_eigenv_n
collect2: ld returned 1 exit statusKann mir jemand erklaeren was es mit diesem Fehler auf sich hat?
Die Funktion mx_matrix_eigenv_n ist in folgender .h-datei definiert:* Beschreibung: Definitionen von Datenstrukturen zur Eigenwertberechnung **/ #ifndef _MX_EIGEN_H_INCLUDED_ #define _MX_EIGEN_H_INCLUDED_ #ifdef MX_KERNEL #include "real.h" #include "vector.h" #else #include </mx/real.h> #include </mx/vector.h> #endif /* Kompatibilitaetsdefine */ #define mx_matrix_eigenw(ew,ev,a,dim) mx_matrix_eigenv(ew,ev,a,dim) int mx_matrix_eigenv(mx_real_t **_ew, mx_real_t ***_ev, mx_real_t **a, int dim); int mx_matrix_eigenv_n(mx_real_t **_ew, mx_real_t ***_ev, mx_real_t **a, int dim, int n); #endif /* _MX_EIGEN_H_INCLUDED_ */
Ich rufe das ganze folgendermassen auf:
mx_matrix_eigenv_n(&eigen_vals, &eigen_vects, Phi, 128, 2);
Hoffe jemand wird daraus schlau und kann mir helfen.
P.S.: Das ganze Programm zur Eigenwertberechnung ist nicht auf meinem Mist gewachsen, ich muss es nur benutzen.
Bin alles andere als ein C-crack. waere also fuer Noob-verstaendliche Antworten dankbar.
-
Ich blicke zwar nicht ganz durch Deine Angaben durch, versuche aber trotzdem mal zu raten, wo der Fehler liegen könnte: ld ist meines Wissens der Linker, der mit dem gcc benutzt wird. Der Linker hat also wahrscheinlich irgendetwas gesucht, was er nicht gefunden hat und liefert deswegen einen Fehler. Könnte es eventuell sein, dass Du die Funktionsdefinition von mx_matrix_eigenv_n gar nicht besitzt, bzw. der Linker sie nicht findet? Denn Du hast lediglich die Deklaration der Funktion gepostet, die dem Compiler die Funktion bekanntmacht. Was die Funktion macht, steht da aber nicht (das wäre die Definition).
-
Die Definition von mx_matrix_eigenv_n liegt in der eigen.c, aber wenn der Fehler darin liegt das der Linker die Funktion nicht findet werd ich mal in die Richtung weiterforschen.
Danke schonmal.