1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Header files für ein einfaches c projekt

Dieses Thema im Forum "OS X-Developer" wurde erstellt von moescream, 21.06.07.

  1. moescream

    moescream Gast

    Hallo zusammen,

    ich hab ja in der Vergangenheit schön öfter mal eine Frage bzgl einfachen c programmen gestellt, was damit zusammenhängt, das wir in der uni c lernen - aber alle tuturials auf visual studio bezogen sind und ich desshalb des öfteren Probleme bei der Implementierung mir xcode habe...
    nur zur erklärung...
    momentan geht es um das arbeiten mit header files und da hab ich zur übung versucht, ein programm zu schreiben, das eine externe (wenn man das so sagen kann) funktion aufruft - das programm ist nicht besonders kreativ, aber ich poste trotzdem mal die fünf zeilen code:

    /*
    * addiere.h
    * Header Übungen
    *
    * Created by Moritz on 21.06.07.
    * Copyright 2007 __MyCompanyName__. All rights reserved.
    *
    */

    #ifndef ADDIERE_H
    #define ADDIERE_H ADDIERE_H

    void addiere (int, int);

    #endif


    /*
    * addiere.c
    * Header Übungen
    *
    * Created by Moritz on 21.06.07.
    * Copyright 2007 __MyCompanyName__. All rights reserved.
    *
    */

    #include "addiere.h"
    #include <stdio.h>
    void addiere (x, y)
    {
    int Ergebnis=0;

    Ergebnis=x+y;
    printf("Die Summe beider Zahlen lautet: %i", Ergebnis);

    }

    //main function

    #include <stdio.h>
    #include "addiere.h"
    int main ()
    {

    int a=0, b=0;

    printf("Bitte gib eine Zahl ein.");
    scanf(" %i", &a);
    printf("Bitte gib eine weitere Zahl ein.");
    scanf(" %i", &b);

    addiere (a,b);

    return 0;
    }


    Beim Kompilieren wird folgende Fehlermeldung ausgegeben:
    Undefined symbols:
    addiere(int, int)
    collect2: ld returned 1 exit status

    Kann damit leider gar nichts anfangen, hab auch leider keine hilfreiche Lektüre gefunden, da sich alle manpages etc. auf cocoa oder c++ beziehen...

    vielleicht hängt es ja auch damit zusammen, wie ich das projekt in xcode erstelle? Bisher hab ich in einem neuem projekt immer ein "new empty file" geöffnet und das dann als .c gespeichert, die vorhandene main.cpp funktion hab ich dann einfach ignoriert. Jetzt dachte ich, dass ich am besten ein BSD C File öffne und dann gleichzeitig ein entsprechendes Header file erstellen lasse, damit der ganze Kram am Ende auch automatisch gelinkt wird.
    Wahrscheinlich ist der Fehler offensichtlich, aber ich komme im Moment wirklich nicht weiter und würde mich über eine kurze Erklärung sehr freuen!
    Lg moritz
     
  2. Bölzebub

    Bölzebub Querina

    Dabei seit:
    27.05.05
    Beiträge:
    180
    Ich habs gerade mal ausprobiert (mit dem BSD C File) und bei mir funktionierts ohne Probleme. Ich frag mich allerdings, wo du die main.cpp her hast. Hast du bei "New Project" C++ Tool statt Standard Tool ausgewählt?

    Außerdem sind bei Mac OS X schon die Manpages zu den Standard-C- und POSIX-Funktionen dabei und die zu gcc und ld sowieso.
     
  3. moescream

    moescream Gast

    Du hast natürlich völlig Recht! Ich hab bisher wie gesagt die main.cpp ignoriert und nicht drüber nachgedacht, dass es auch sowas wie "Standart Tool" geben könnte. Hab ein neues Projekt angelegt und den Code reinkopiert - funktioniert wunderbar! Der Abend ist gerettet!
    Wegen den Manpages, also ich kann mich erinnern (jetzt wo du´s erwähnst) dass ich tatsächlich bei einer anderen Gelegenheit mal bis zum manual für gcc vorgedrungen bin, aber leicht zu finden wars nicht... ich denke xcode ist halt tatsächlich eher auf "professionelle" Programmierer ausgerichet und das daher die dokumentation von standard c funktionen nicht so im vordergrund steht. Vor allem wenn man als newbie, so wie ich, eh nicht so den überblick übers Programmieren hat, helfen einem die einträge dann auch oft nicht weiter...
    Aber du hast mir ja zum Glück weitergeholfen, vielen Dank dafür!
    mo
     

Diese Seite empfehlen