Problem beim Compilen



  • Hallo zusammen,
    ich muss mich als ziemlichen Anfänger in Sachen Programmierung outen und habe maximal Grundkenntnisse in dem Gebiet.
    Ich wollte gerne ein paar Anpassungen in einem Programmcode machen, den ich von hier heruntergeladen habe: https://njw.name/getxbook/getxbook-1.1.tar.bz2

    Ich habe nun die Datei "getabook.c" aus dem Verzeichnis in DEV-C++ geöffnet und meine Anpassungen gemacht. Allerdings lässt sich das Ganze nicht compilen. Dies funktioniert allerdings auch nicht, wenn ich die Datei überhaupt nicht ändere und compilen will. Dann bekomme ich die Meldung:
    "In function 'main':"
    Line 183: "syntax error before "VERSION""
    Line 197: "too many arguments to function 'mkdir'"

    Da ich aber in diesem Fall noch keine Änderungen vorgenommen habe, nehme ich an, dass ich in DEV-C++ irgendwelche Einstellungen vornehmen müsste oder Zusätze installieren muss.

    Vielleicht kann mir hier ja jemand weiterhelfen?

    Mit freundlichen Grüßen,
    Zymbo


  • Mod

    Du musst das Makefile benutzen, um das Projekt zu erstellen.

    Was dir vermutlich nicht wirklich weiter hilft 😞

    Keine Ahnung, ob und wie man Makefiles direkt in DEV-C++ benutzen kann. Die von dir gewählten Werkzeuge musst du schon selber benutzen können. DEV-C++ ist bei weiten nicht mehr so verbreitet, wie es einmal war, da das Projekt über lange Jahre nicht gepflegt wurde. Es ist daher vorstellbar, dass niemand hier weiß, wie das mit Makefiles und DEV-C++ geht.



  • Danke schon mal für die Antwort. Vielleicht könnte mir jemand ein Programm empfehlen, das ich benutzen könnte. Es muss natürlich nicht DEV-C++ sein, das war nur das Programm, welches ich bereits auf dem Rechner hatte.
    Sorry für die Anfängerfragen...


  • Mod

    Um erst einmal die Rahmenbedingungen zu klären: Für Windows soll das sein, oder?



  • Ja genau, für Windows.



  • Zymbo schrieb:

    DEV-C++

    ist wie

    Zymbo schrieb:

    Wolf



  • DevC++ hat eine eigene Projektverwaltung, d.h. make brauchst du nicht unbedingt
    - Datei > Neu > Projekt...
    - Empty Project > C-Projekt > Name: eingeben > OK
    - im linken Fenster (Tab "Projekt") deins markieren + Maus rechts
    - "Zum Projekt hinzufügen" > deine Quelldatei auswählen
    - fertig



  • Ok, ich habe das ganze nun mit MinGW ausprobiert.
    Habe die msys.bat gestartet und dort den Befehl mingw32-make im Verzeichnis des Sourcecodes angewendet.
    Auch hier bekomme ich leider Fehlermeldungen:

    $ mingw32-make
    CC getgbook.c
    getgbook.c: In function 'main':
    getgbook.c:205:2: error: too many arguments to function 'mkdir'
    if(!((d = opendir(bookdir)) || !mkdir(bookdir, S_IRWXU))) {
    ^
    In file included from c:\mingw\include\dirent.h:15:0,
    from getgbook.c:7:
    c:\mingw\include\io.h:313:37: note: declared here
    _CRTIMP int __cdecl __MINGW_NOTHROW mkdir (const char*);
    ^
    Makefile:26: recipe for target 'getgbook.o' failed
    mingw32-make: *** [getgbook.o] Error 1

    Kann mir hier jemand weiterhelfen? Wie gesagt, habe ich in diesem Kompilierungsversuch den Original-Sourcecode ohne Änderungen verwendet.

    Danke für jede Hilfe.



  • Nimm eine IDE und frickele nicht auf Kommandozeile rum.


  • Mod

    Für die, die das Projekt nicht angeschaut haben:
    Das Problem ist, dass in dem Makefile gewisse Einstellungen gesetzt werden, beispielsweise wird die Definition einiger Makros per Kommandozeile an den Präprozessor übergeben. Wenn man den Quellcode bloß in ein neues Projekt einfügt und das Makefile verwirft, dann gehen diese Definitionen verloren und der Code lässt sich nicht übersetzen.

    Man muss also entweder das Projekt so umprogrammieren, dass alles aus dem Makefile direkt im Quellcode steht oder eben tatsächlich make benutzen, wie es vorgesehen ist.



  • Fertig compiliert sogar mit GUI:

    https://njw.name/getxbook/
    https://njw.name/getxbook/getxbook-1.1-win.zip

    Klappt aber wohl (nicht mehr) so richtig, berichte mal, ob du irgendwas vernünftig laden konntest.


  • Mod

    Der TE will den Quellcode modifizieren, nicht nur das fertige Programm nutzen.



  • DevC++ hat eine eigene Projektverwaltung, d.h. make brauchst du nicht unbedingt
    - Datei > Neu > Projekt...
    - Empty Project > C-Projekt > Name: eingeben > OK
    - im linken Fenster (Tab "Projekt") deins markieren + Maus rechts
    - "Zum Projekt hinzufügen" > getabook.c+util.c+util.h
    - Projekt > Projekt Optionen > Parameter > C-Compiler > -DVERSION=\"1.1\" -DWINVER=0x0501
    - Projekt > Projekt Optionen > Parameter > Linker > -lws2_32
    - fertig



  • Danke schon mal für die Hilfe, aber hat das kompilieren bei dir tatsächlich funktioniert?
    Ich bekomme diverseste Fehlermeldungen und es wird keine exe-Datei erzeugt. Versuche ich nur die getabook.c zu kompilieren erzugt er eine *.o-Datei.



  • Es hat bei mir geklappt, so wie ausführlich beschrieben.
    Stelle dich nicht so an.



  • Netter Umgangston, danke, ich kann lesen. Wenn sich jemand anstellt, dann ist es mein Rechner bzw. DevC++.
    Dennoch kommen die Fehlermeldungen (zuviele um sie hier alle aufzuführen), wenn ich das Projekt kompilieren möchte.



  • Nein, du kannst nicht lesen. Du bist nicht der Erste, dem ich das nachweise.
    Der Compiler ist ebenso unschuldig wie die IDE, die können beide mit begriffsstutzigen Laien nichts anfangen.

    Vielleicht kannst du statt lesen ja wenigstens zuschauen:

    Dev-C++ Bedienung



  • Zymbo schrieb:

    Netter Umgangston, danke, ich kann lesen.

    Das ist noch harmlos. So sind manche Leute eben (ich auch manchmal), wenn man schwer von Begriff ist.

    Außerdem gibt es sowas wie compilen nicht.
    Schreib es entweder korrekt in Deutsch (kompilieren) oder Englisch (compiling).



  • Ihr Nasen, irgendwie seid ihr ja schon amüsant. 🙂

    @Wutz: Ich hatte selbstverständlich alles so durchgeführt, wie du es ausführlich beschrieben hast. Dennoch hat mir dein Video extrem weitergeholfen, denn ich hatte noch die Oldie-Bloodshed-Version von Dev-C++ installiert und ohne die Backslash bei den Compiler-Parametern geht es eben nicht und die verschluckt das Forum hier bei mir in der Ansicht. Beim Schreiben einer Antwort (so wie jetzt) sieht man sie lustigerweise unten im Themen-Überblick.

    Also, vielen Dank noch mal für die Hilfe, alles funktioniert, so wie ich es erhofft habe!

    Bis dann,
    Zymbo



  • Ich krame das Ding nochmal hervor. Ich versuche gerade v1.2 (https://njw.name/getxbook/getxbook-1.2.tar.xz) zu compilieren und erhalte 2 Meldungen beim compilieren.

    D:\getxbook-1.2\<command-line> [Error] expected ')' before numeric constant

    D:\getxbook-1.2\getabook.c [Error] too few arguments to function 'fputs'

    Was ist das schief gelaufen ?
    Hab mich an die Anweisung von Wutz oben gehalten 🙂


Log in to reply