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