Frage zu C

Dieses Thema im Forum "C/C++" wurde erstellt von Linthorul, 07.09.2008.

  1. #1 Linthorul, 07.09.2008
    Linthorul

    Linthorul Arch Luxer

    Dabei seit:
    01.12.2007
    Beiträge:
    205
    Zustimmungen:
    0
    Hallo,

    wenn ich in C eine eigene Headerdatei einbinden will, will sich meine Datei nicht kompilieren lassen.

    Die myheader.h sieht so aus:
    Code:
    #ifndef MYHEADER_H
    #define MYHEADER_H
    
    #define PI (3.1415)
    
    extern int meineVariable;
    
    int meineFunktion1(int);
    int meineFunktion2(char);
    
    #endif /* MYHEADER_H */
    Die myheader.c:
    Code:
    #include "myheader.h"
    
    int meineVariable = 0;
    
    int meineFunktion1 (int i)
    {
    	return i++;
    }
    
    int meineFunktion2 (char c)
    {
    	if (c == 'A')
    		return 1;
    	return 0;
    }
    Das kompilieren klappt aber weder mit
    Code:
    gcc -o myheader myheader.c
    noch mit
    Code:
    gcc myheader.c
    Es kommt folgende Fehlermeldung:
    Code:
    /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/crt1.o: In function `_start':
    (.text+0x18): undefined reference to `main'
    collect2: ld returned 1 exit status
    Was mach ich falsch?

    Best regards,
    thacrazze
     
  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. andy81

    andy81 von_suse_zu_arch_wechsler

    Dabei seit:
    30.03.2008
    Beiträge:
    72
    Zustimmungen:
    0
    wo ist denn deine main-funktion???
     
  4. defcon

    defcon Kaiser
    Moderator

    Dabei seit:
    22.08.2005
    Beiträge:
    1.486
    Zustimmungen:
    1
    Ort:
    Bruchsal
    Sollte das nicht in etwa so aussehen?

    Code:
    #include <stdio.h>
    #include "myheader.h"
    
    int main()
    {
     ....
    
    Ist zwar bei mir schon sehr lange her, aber ich hab so noch in Erinnerung.
     
  5. #4 der_Kay, 07.09.2008
    der_Kay

    der_Kay Doppel-As

    Dabei seit:
    28.02.2006
    Beiträge:
    140
    Zustimmungen:
    0
    oder nur kompilieren

    gcc -o myheader -c myheader.c

    Eine main muss auf jeden Fall rein, wenn ein ausführbares Programm entstehen soll.
     
  6. #5 marcellus, 07.09.2008
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    Du kannst die header nicht so leicht ohne hauptprogramm compilieren. Wenn du die header datei in dein hauptprogramm einbindest wird die header datei auch compiliert, wenn du dein hauptprogramm compilierst.
     
  7. #6 Linthorul, 07.09.2008
    Linthorul

    Linthorul Arch Luxer

    Dabei seit:
    01.12.2007
    Beiträge:
    205
    Zustimmungen:
    0
  8. #7 plusman, 07.09.2008
    plusman

    plusman Grünschnabel

    Dabei seit:
    20.11.2006
    Beiträge:
    6
    Zustimmungen:
    0
    Nein, die Anleitung ist korrekt.

    Es wird ja nur erklärt, wie das mit Header Dateien funktioniert.

    Es geht nicht darum, ein eigenständiges Programm zu schreiben.

    Die main() ist "nur" nötig, wenn du ein Programm erstellen willst. In dem "Tutorial" wird aber nur gezeigt, wie man allg. eine .obj Datei erstellt, die man - wie oben erwähnt - bspw. über gcc -o myheader -c myheader.c erstellt. Wenn du das eintipst, wird dein Compiler sich nicht beschweren, du erhälst aber logischerweise dann auch kein ausführbares Programm.
     
  9. Anzeige

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

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Du solltest die Korrektur schnell wieder rueckgaengig machen, denn das Beispiel ist ohne main-Funktion voellig korrekt, waehrend ein Programm, dass nun myheader nutzen moechte, sich nicht mehr erstellen laesst.

    Fuer ein ausfuehrbares C/C++Programm muss es genau eine main-Funktion geben. Im Wiki steht etwas von 'Kompilieren', und strenggenommen bedeutet das, die Option '-c' an gcc zu uebergeben. Damit wird der Quellcode kompiliert (in Maschinencode uebersetzt, myheader.o wird erstellt), jedoch keine ausfuehrbare Datei (executable) erstellt.
     
  11. #9 Linthorul, 07.09.2008
    Linthorul

    Linthorul Arch Luxer

    Dabei seit:
    01.12.2007
    Beiträge:
    205
    Zustimmungen:
    0
    Hat schon einer gemacht.

    Übrigens geht die Uhr hier in dem Forum um 20 Min. falsch.
     
Thema:

Frage zu C

Die Seite wird geladen...

Frage zu C - Ähnliche Themen

  1. Anfänger Frage: Welchen Standard wählen

    Anfänger Frage: Welchen Standard wählen: Hallo, früher wußte ich nie wie ich anfangen muß. Heute weiß ich einfach anfangen und mir alles selbst beibringen. Was ich mich aber noch...
  2. Sicherheitsfragen zu PHP-Anwendungen auf der Webseite

    Sicherheitsfragen zu PHP-Anwendungen auf der Webseite: Hallo miteinander, habe eine kleine Webseite (4 Jahre statisch, keine Sicherheitsprobleme bisher) und ich frage mich, wie sicher die Verwendung...
  3. Fragen zu find

    Fragen zu find: Hallo an alle, Ich bin ziemlich neu in der Linux Welt und habe paar frage Ich soll alle Datein im system finden die vor weniger als drei Tagen...
  4. Frage zu QNX - habe login nie gefunden

    Frage zu QNX - habe login nie gefunden: ′
  5. Kleine Frage (Solaris ein Cloud Betriebsystem?)

    Kleine Frage (Solaris ein Cloud Betriebsystem?): ′