Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Problem: stdio.h / stddef.h defekt?

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.04.2002
    Beiträge
    15

    Problem: stdio.h / stddef.h defekt?

    Grüß euch!

    Bitte nicht gleich hauen fange mit C programmieren eigentlich gerade erst an, falls es ein ganz dummer Fehler meinerseits ist .

    Also ich möchte ein selbst geschriebenes Program unter Linux kompilieren. Dabei werden auch auf Dateien zugegriffen (gelesen und geschrieben) allerdings scheint dann plötzlich die stdio.h nicht mehr zu funktionieren. gcc meldet folgenden Fehler:
    Code:
    In file included from /usr/include/stdio.h:34,
                     from audio2.c:15:
    /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h:213: error: syntax error before "typedef"
    An besagter Stelle in Zeile 213 der stddef.h wird anscheinend ein Variablentyp "size_t" definiert, den ich für fread/fwrite brauche.
    Zusätzlich habe ich folgende libs eingebunden:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>


    Das seltsame ist, das gleiche Program wird an der Uni unter MS Visual C++ einwandfrei compiliert.
    Hat vielleicht jemand von euch einen Tipp? Immerhin hab ich schon herausgefunden, dass man den gcc mit der Option "-lm" starten muss wenn man die math.h einbinden will.

    Danke im Voraus!

    Ach ja... ich verwende SuSE 8.2 auf einem Athlon TB C 1000 und "gcc (GCC) 3.3 20030226 (prerelease) (SuSE Linux)" (laut "gcc --version").

    CU ActionNews
    Visit www.pvr-world.de !

  2. #2
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762
    die Header sind nicht kaputt und -lm braucht man für Standardprogramme nicht zu benutzen.
    Du hast sicher irgendwas im Quelltext, was nicht ganz sauber ist, aber das kann man nur sehen, wenn Du den Code hier postest.
    I haven't lost my mind - It's somewhere on a backup-disc

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.04.2002
    Beiträge
    15
    Also gut ich hänge den Code mal an.
    Zur Info: Das Programm soll aus einer wavehead.bin einen Wave-header einlesen und daran dann ein 1 Sekunde dauerndes Signal anhängen (Sinusforum, Rechteck oder konstante Amplitude). Form des Signal, Frequenz und Amplitude (0-100% des Wertebereichs) soll man wählen können. Naja eine Informatik-Übungsaufgabe halt.

    BTW: ohne -lm findet er die sinusfunktion nicht obwohl math.h eingebunden ist!

    EDIT: Wo ist der Anhang geblieben?

    CU ActionNews
    Geändert von ActionNews (08-11-2003 um 08:13 Uhr)
    Visit www.pvr-world.de !

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.04.2002
    Beiträge
    15
    Ich hoffe jetzt klappt es ? ..... EDIT: Ah ja da ist er ja !

    Ach vielleicht habt ihr dann auch gleich ein paar Tipps was man besser machen könnte bzw. Was ich in Zukunft anders besser lösen könnte. Danke.

    CU ActionNews
    Geändert von ActionNews (08-11-2003 um 08:28 Uhr)
    Visit www.pvr-world.de !

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    In dieser Zeile
    Code:
    Parameter_einlesen(&signal, &SigFrequ, &Ampl)
    Fehlt das abschliessende Semikolon ;

    Der Prototyp der Funktion wavedatei_speichern stimmt weder im Namen noch in der Parameteranzahl mit der Funktionsdefinition überein.

    @SeeksTheMoon: natürlich muss man mit -lm linken, wenn man Befehle aus math.h benutzt.

    Sonst klappt aber alles, wenn man die Fehler beseitigt.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.04.2002
    Beiträge
    15
    Ah ok danke ! Sind natürlich blöde Fehler!
    DFas kommt davon wenn man nach dem Fehler sucht und dann im Programm rumpfuscht !

    Naja egal, also ich hab das Programm wie im Anhang geändert, allerdings erhalte ich jetzt folgende Fehlermeldung:

    /tmp/cc7L1WCe.o(.text+0xdb): In function `main':
    : undefined reference to `wavedatei_speichern'
    collect2: ld returned 1 exit status
    Hmm... was mach ich denn jetzt wieder falsch ?

    CU ActionNews
    Visit www.pvr-world.de !

  7. #7
    Registrierter Benutzer
    Registriert seit
    19.04.2002
    Beiträge
    15
    Grumml Anhang vergessen !
    Visit www.pvr-world.de !

  8. #8
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Code:
    int main() {
    	if ( wavedatei_speichern( Vektor, argv[0], argv[1])) return EXIT_FAILURE;
    	return EXIT_SUCCESS;
    }
    ...
    int wavdatei_speichern(short *V, char Programname[], char Dateiname[])
    {
    Bei der Definition fehlt ein 'e'.

  9. #9
    Registrierter Benutzer
    Registriert seit
    19.04.2002
    Beiträge
    15
    Args ! Danke! Da hätte ich auch selber drauf kommen können !

    EDIT: Danke jetzt geht es !

    CU ActionNews
    Geändert von ActionNews (09-11-2003 um 10:22 Uhr)
    Visit www.pvr-world.de !

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •