-
        

Ergebnis 1 bis 9 von 9

Thema: Text-Datei erstellen (C-Programm)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    01.12.2007
    Beiträge
    32

    Text-Datei erstellen (C-Programm)

    Anzeige

    Mein Ziel ist es, ein C-Programm zu schreiben, mit dem ich eine Text-Datei öffne, bearbeite und wieder schließe. Das hier ist natürlich noch nicht das Programm, wie es später aussehen wird, sondern nur das Grundgerüst. Den Quelltext habe ich von hier:

    http://www.learn-programming.za.net/...c_learn10.html

    Code:
    #include<stdio.h>
     
    int main()
    {
       FILE *f;
       char buf[100];
       f = fopen("test.txt","w+");    //w+	 Open for reading and writing and create the file if it does not exist. If the file exists then make it blank.
       fprintf(f,"Hello");
       fgets(buf,sizeof(buf),f);
       printf("%s\n",buf);
       fclose(f);
       return 0;
    }
    Hier die Fehlermeldungen, die beim Kompilieren auftauchen:

    Code:
    > "make.exe" all
    
    -------- begin --------
    avr-gcc (WinAVR 20090313) 4.3.2
    Copyright (C) 2008 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    
    Compiling C: main.c
    avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o 
    main.c:4: warning: function declaration isn't a prototype
    main.c: In function 'main':
    main.c:7: warning: implicit declaration of function 'fopen'
    main.c:7: warning: assignment makes pointer from integer without a cast
    
    Linking: main.elf
    avr-gcc -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o  -std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref     -lm
    main.o: In function `main':
    D:\Daten\C-Programmierung\Programme\test2/main.c:7: undefined reference to `fopen'
    make.exe: *** [main.elf] Error 1
    
    > Process Exit Code: 2
    > Time Taken: 00:01
    Nach dem Kompilieren habe ich nun Dateien mit den folgenden Endungen:

    .c .eep .lss .lst .map .o .sym .hex

    Also mein erstes Problem: Es wurde keine .elf Datei geschaffen.
    Und mein zweites: Wie starte ich nachher mein Programm? Ich habe ja nur eine .hex-Datei und keine .exe!

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    22.11.2005
    Ort
    Braunschweig
    Alter
    41
    Beiträge
    685
    Moin!
    Dein Tutorial ist wohl eher für PC's mit einem Betriebssystem gedacht, avr-gcc aber für Microcontroller, da gibt es kein Betriebssystem, was grad mal eine Datei erzeugt, wo auch Genauso Dein Problem mmit der fehlenden .exe, die würde auf einem PC mit DOS/Windows laufen, Deine .hex-Datei mußt Du aber auf Deinen Mikrocontroller ins ROM schreiben. Möchtest Du denn einen µC oder einen PC programmieren??

    MfG
    Volker
    Meine kleine Seite
    http://home.arcor.de/volker.klaffehn
    http://vklaffehn.funpic.de/cms
    neuer Avatar, meine geheime Identität

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    01.12.2007
    Beiträge
    32
    Ich möchte die Datei auf einem PC ausführen, nicht auf einem Microcontroller Hätte ich vielleicht dazuschreiben sollen.

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Der Compiler ist aber fest überzeugt, dass er für einen µC kompiliert.
    Compiling C: main.c
    avr-gcc -c -mmcu=atmega128 .......................................
    was für einen "avr-gcc" auch eher der Normalfall ist


    Da dürfte was durcheinander geraten sein
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    18.07.2008
    Ort
    Irchenrieth (BY)
    Alter
    25
    Beiträge
    50
    Du musst ein Makefile für einen PC benutzen und nicht das für µCs....
    Oder du benutzt GCC einfach per Hand, was bei einer Datei auch nicht mehr Aufwand bedeutet....
    Software is like sex: it's better when it's free...

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    01.12.2007
    Beiträge
    32
    Ich hatte eine Anleitung zum "gcc per Hand benutzen", aber die war total kompliziert. Damit bin ich leider nicht klargekommen.

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    Wenn Du C/C++ für den PC programieren willst, bietet sich z.B. Dev-C++ an. Versuch's mal damit.

    Gruß,
    askazo

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    18.07.2008
    Ort
    Irchenrieth (BY)
    Alter
    25
    Beiträge
    50
    Die is kompliziert wenn du es für AVRs benötigst, aber um für den PC zu kompilieren reicht ein
    Code:
    GCC quellcode.c -o AusfuehrbareDatei.exe
    Die setzt für M$ Win aber vorraus, dass GCC eingerichtet ist und nicht avr-gcc!

    Ich würde dir für dein Win eine IDE empfehlen z.B http://www.bloodshed.net/devcpp.html


    //edit: Zu langsam... Vorredner war schneller...
    Software is like sex: it's better when it's free...

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    01.12.2007
    Beiträge
    32
    Ich guck mir dieses Dev-C++ mal angucken.

    Danke euch!

    Edit: Hab's auf Anhieb hinbekommen, tolles Programm! Gleicher Quellcode, keine Fehlermeldungen mehr.

Berechtigungen

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