# Funktion in anderer Datei aufrufen



## Ozzy Ozborn (22. November 2007)

Hi,

ich habe ein kleines Problem: und zwar habe ich eine Klasse, aus der ich eine Funktion aus einer anderen Datei aufrufen möchte, was mir aber einfach nicht gelingen möchte...
Die Klasse habe ich selber geschrieben (OnOff), die Funktion stammt aus einer Funktion, die Zufallszahlen generiert (LIBRAN.C).
Als Umgebung benutze ich KDevelop, für libran habe ich ein Unterverzeichnis angelegt, und die libran.h includet.
Wenn ich jetzt eine Funktion aufrufen möchte (z.B. setall(seed1, seed2) ), bekomme ich nur die Fehlermeldung undefined reference to 'setall(long, long)'

Wisst Ihr vielleicht, woran das liegt?

MfG, und vielen Dank schon einmal im Voraus, Ozzy

P.S.: in der includeten Datei ranlib.h sind alle Funktionen als extern deklariert...


----------



## Buba235 (22. November 2007)

Hallo!


Könnte es eben an dem Unterverzeichnis liegen? Also hast du den absoluten Pfad angegeben? Was anderes fällt mir so auf die Schnelle nicht ein!


Gruß Buba


----------



## Ozzy Ozborn (22. November 2007)

Hi,

kann ich mir kaum vorstellen, denn mit dem includen hat er ja auch kein Problem. Erst, wenn ich den Pfad davor schreibe, geht nichts mehr...

MfG, Ozzy


----------



## deepthroat (22. November 2007)

Hi.

Die externen Funktionen müssen letztendlich beim Linken verfügbar sein. Du hast vergessen eine Bibliothek oder Objekt-Datei einzubinden. D.h. du müßtest die ranlib.c zu einer .o Datei kompilieren oder daraus eine statische bzw. dynamische Bibliothek erstellen und diese dann zu deinem Programm hinzulinken.

Gruß


----------



## Ozzy Ozborn (22. November 2007)

Danke für Eure Antworten, doch daran lag es nicht. Woran es genau lag, weiß ich nicht. Ich habe die Dateien verschoben, und an der alten Stelle neue angelegt, und dann mit copy&paste eingefügt, und nun geht alles... Strange...

Trotzdem vielen Dank für Eure Hilfe, MfG, Ozzy


----------



## deepthroat (22. November 2007)

Ozzy Ozborn hat gesagt.:


> Danke für Eure Antworten, doch daran lag es nicht. Woran es genau lag, weiß ich nicht. Ich habe die Dateien verschoben, und an der alten Stelle neue angelegt, und dann mit copy&paste eingefügt, und nun geht alles... Strange...


Dann hat KDevelop diese Dateien sicherlich mit ins Projekt aufgenommen, dementsprechend auch kompiliert und zum Programm hinzugelinkt...

Gruß


----------



## Ozzy Ozborn (22. November 2007)

Also die o-Dateien hat K-Develop erstellt, in der Makefile standen die Dateien dementsprechend auch. Merkwürdig...

MfG, Ozzy


----------

