undefined reference ...

Dieses Thema im Forum "C/C++" wurde erstellt von erinus, 05.01.2007.

  1. #1 erinus, 05.01.2007
    Zuletzt bearbeitet: 05.01.2007
    erinus

    erinus Grünschnabel

    Dabei seit:
    02.01.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo,

    ich (Neuling in Sachen C) untersuche gerade, wie das ist, wenn man den Code auf mehrere Dateien verteilt. Und prompt bleibe ich hängen. Der Compiler meldet "undefined reference" in main, und zwar auf printadr. Wahrscheinlich ist es nur eine kleine Macke, aber ich finde sie nicht. Tut mir leid, dass ich den kompletten Testcode wiedergeben muss, aber ich habe ihn so kurz gefasst wie möglich:

    Code:
    ------ Header main.h ------------------
    
    #ifndef MAIN_H
    #define MAIN_H
    
    #include <stdio.h>
    #define name "Siggi Supertroll"
    
    #endif
    
    ------ Hauptprogramm main.c -----------
    
    #include "main.h"
    #include "adr.h"
    
    int main () {
      printadr ();
    }
    
    ------ Header adr.h -------------------
    
    #ifndef ADR_H
    #define ADR_H
    
    #include "main.h"
    #define plz "33333"
    #define ort "Trollheim"
     
    void printadr ();
    
    #endif
    
    ------- adr.c ---------------------
    
    #include "adr.h"
    
    void printadr () {
      printf (name "\n" plz " " ort "\n");
    }
    
    ------ Makefile -------------
    
    all : adresse main.o unit.o
    adresse : main.c
    	gcc -o adresse main.c
    main.o : main.c
    	gcc -c main.c
    unit.o : unit.c
    	gcc -c unit.c
    
    Was ist falsch?

    Gruß,
    Reinhard
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    pardon, da ist leider das falsche Makefile reingerutscht. Es heißt dort natürlich adr.o und nicht unit.o.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Andrea

    Andrea Routinier

    Dabei seit:
    01.12.2003
    Beiträge:
    418
    Zustimmungen:
    0
    Ort:
    Bielefeld
    Hi,

    muessen in dem Makefile die Header nicht auch mitdrin stehen?

    Also : adresse main.c main.h
    gcc -o adresse main.c main.h

    und analog fuer die anderen?

    Andrea
     
  4. erinus

    erinus Grünschnabel

    Dabei seit:
    02.01.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Ich denke, in der Zeile der Abhängigkeiten schon. Sonst würden Änderungen im Header ja nicht erfasst. Aber in der Ausführungszeile (gcc ...) halte ich das für unlogisch, weil die Header ja mit #inlcude wörtlich eingebunden werden. Und tatsächlich meldet gcc in diesem Fall auch einen Fehler. Ich glaube nicht, dass es am Makefile liegt.

    Gruß
    Reinhard
     
  5. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Code:
    adresse : main.c
    	gcc -o adresse main.c
    
    In diesen Zeilen des Makefiles liegt das Problem.
    Du musst das ganze mit
    Code:
    gcc -o adresse main.c adr.c
    
    kompilieren.
    Alternativ deklarierst du printadr() als extern und erstellst vorher Objekt-Dateien, die du dann linkst.
    Code:
    gcc -c main.c
    gcc -c adr.c
    gcc -o adresse main.o adr.o
    
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

undefined reference ...

Die Seite wird geladen...

undefined reference ... - Ähnliche Themen

  1. Noch ein 'undefined reference to'-Problem

    Noch ein 'undefined reference to'-Problem: Servus alle Seit langem versuche ich, dsniff 2.3 auf meinem Suse 10.1 (gcc 4.1.0) Rechner zu compilieren+installieren. Nach einigen Hürden habe...
  2. undefined reference beheben

    undefined reference beheben: Hi, ich will das Programm dab.c compilieren (Quelle: http://www.2600.org/code/221/dab.c) bekomme aber folgende Fehlermeldung beim ausführen von...
  3. 'libraryname': undefined reference to 'functionname'

    'libraryname': undefined reference to 'functionname': Hallo zusammen, Erst mal das Allgemeine: Ich benutze SuSE 10.3 als Betriebssystem und Eclipse als IDE. Meine C++ Kenntnisse sind nicht wirklich...
  4. undefined reference

    undefined reference: Hallo alle zusammen, Ich hab da so ein nerviges Problem mit der Installation von Rythmbox Music Player. Da ich noch Dapper Drake habe wollte ich...
  5. gtk+extra undefined reference

    gtk+extra undefined reference: Ich hab ein problem mit gtk+extra ich will einfach nur ein testprogramm zum laufen bringen, nix besonderes ich will nur mal was zum laufen...