undefined reference zu einer funktion..
-
Ich dreh gleich durch... Ich habe folgende Ordner Struktur gegeben
+Projektname (Ordner)
-- main.c
-- main.h
-- modula.c
-- modula.h
-- blubb.h
-- blubb.c
+Shared (Ordner)
-- ...
+Sonstiges (Ordner)
-- ...Ich habe ein Projekt, das ein paar Strukturen und ein paar Funktionen einbindet mit folgender include - Anweisung:
#include "blubb.h"
Somit wird die shmcom.h aus dem Projektverzeichnis eingebunden. Soweit so gut! Klappt auch - wieso auch nicht.
Nun hab ich aber folgendes:
+Projektname (Ordner)
-- main.c
-- main.h
-- modula.c
-- modula.h
+Shared (Ordner)
-- blubb.h
-- blubb.c
+Sonstiges (Ordner)
-- ...Ich will also die blubb - Files in ein Shared Verzeichnis verlegen, so dass auch später andere Module diese nutzen können. Die zugehörige include Anweisung heißt also nun:
#include "../Shared/blubb.h"
Er findet die Datei, aber ohne dass ich etwas am Code geändert habe (bis auf die include Anweisung eben), kommt nun beim Compilieren bei jeder dort definierten Funktion nun die Fehlermeldung:
modula.c:(.text+0x21): undefined reference to `blubbfunction'
Warum warum warum? Woran könnte das liegen?
-
Vergessen blubb.c mit zu kompilieren (bzw zu linken)?
Schließlich hat sich der Pfad von blubb.c auch von ./ nach ../Shared/ geändert
-
Der Fehler kommt beim Linken und nicht beim Compilieren. Und der Linker weiß nichts von include-Direktiven. Er bindet Objektdateien (*.o) zu einer Ausführbaren Einheit zusammen. Du linkst offensichtlich modula.o nicht dazu.
-
Danke daran lags - ich Depp ^^