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 ^^


Anmelden zum Antworten