Probleme beim Linken in C

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von s1nu, 26. November 2013 .

Schlagworte:
  1. 26. November 2013
    Hallo Leute,

    ich hab wiedermal n nerviges Problem, dass ich jetzt irgendwie nicht lösen kann..

    Es geht hier vermutlich um eine Grundsatzfrage. Ich habe 3 Files:

    main.c
    Code:
    #include <stdio.h>
    #include "clifo.h"
    
    int main(void){
     int a = 10;
     int b = 10;
    
     int erg = addiere(a,b);
    
     return 0;
    }
    clifo.h:
    Code:
    #ifndef CLIFO_H_INCLUDED
    #define CLIFO_H_INCLUDED
    
    int addiere(int a, int b);
    
    #endif // CLIFO_H_INCLUDED
    und lifolib.c:
    Code:
    #include <stdio.h>
    #include "clifo.h"
    
    int addiere(int a, int b){
     int erg = a+b;
     return erg;
    }
    Leider bekomme ich das nicht gelinkt. Folgender Fehler wird mir immer angezeigt:

    "undefinded reference to 'addiere'"

    Die Header-Datei befindet sich im gleichen Verzeichnis wie die main.c !

    Bitte sagt mir, was ich falsch mache?
     
  2. 26. November 2013
    AW: Probleme beim Linken in C

    Der Compiler und ggf. Flags währen wichtig, wenns Probleme beim linken gibt.

    PS: Ich nenne meine c und h files immer gleich. In deinem Fall also clifo.h und clifo.c. K.a. ob das nötigt ist aber es schafft mMn einfach Übersichtlichkeit.
     
  3. 26. November 2013
    Zuletzt bearbeitet: 26. November 2013
    AW: Probleme beim Linken in C

    Du musst lifolib.c ebenfalls übersetzen und zusammen mit main.c dem linker übergeben.

    Code:
    gcc -o main.o -c main.c 
    gcc -o lifolib.o -c lifolib.c
    gcc -o program.exe main.o lifolib.o
     
  4. 26. November 2013
    Zuletzt bearbeitet: 26. November 2013
    AW: Probleme beim Linken in C

    ok, danke schonmal für deine Rückmeldung. Ich hoffe, ich finde das, was du benötigst.

    Also vorab ich verwende Geany und das Programm kompiliert denk ich mit gcc..

    Hier die Flags:

    beim Kompilieren (das klappt wunderbar):
    Code:
    gcc -Wall -c -std=c99 "%f"
    beim Erstellen:
    Code:
    gcc -Wall -std=c99 -o "%e" "%f"
    edit:

    das geht leider nicht.. gleiches problem
     
  5. 26. November 2013
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Probleme beim Linken in C

    So funktioniert das:
    Download: test.zip | www.xup.in

    Makefile beachten.
     
  6. 26. November 2013
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Probleme beim Linken in C

    Ok, Danke. Und wo muss das Makefile hin? Sodass, das funktioniert
     
  7. 26. November 2013
    AW: Probleme beim Linken in C

    Dieses Makefile ist speziell für diese Ordnerstruktur und Dateien.
    Ein bisschen nachdenken und anpassen sollte wohl drin sein
     
  8. 26. November 2013
    AW: Probleme beim Linken in C

    Ja ich weiß was ein makefile macht, aber ich kompiliere ja nicht alles per hand..^^ sollte ja eigentlich die idee regeln xD
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.