Seite 1 von 3
Programm lässt sich nicht kompilieren
Verfasst: Di Mär 02, 2010 4:34 pm
von naums
Folgendes Projekt:
http://www.naums-project.net.tf/src/INI ... IMaker.tar
warum geht das als "Debug" gar nicht zu kompilieren, bzw. als "Release" zwar zu kompilieren aber stürzt direkt nach dem Start ab. Die Debug EXE war 2MB groß die Release lediglich 300KB
Re: Programm lässt sich nicht kompilieren
Verfasst: Di Mär 02, 2010 4:46 pm
von cloidnerux
Wie wäre es mit einer genueren Fehlerbeschreibung, bzw. Fehlermeldungen beim Compilieren oder Meldungen nach/wärend dem Absturz deines Programmes.
Mit welchem Compiler Compiliert, auf welcher Platform?
Was nutzt du in dem programm, eine GUI, wenn ja welches toolkit, welche externen Bibilotheken nutzt du?
Edit: Hab mir das ganze mal Flüchtig angeschaut, du solltest NIEMLAS Code-Dateien direkt einbinden, sondern Funktionen in einer Header Definieren und die dann einbinden, die Funktionen deklarierst du dann in einer anderen Code-Datei, die dann mit Compiliert wird.
Du hast all deinen Code in eine/wenige Dateien geschrieben, Kapsele deine Klassen und Methoden in einzelene Dateien, die diese in Sinnvolle kleinere Häppchen unterteilen, damit du nicht so verrwirrt wirst und schneller Fehler finden und vermeiden kannst.
Re: Programm lässt sich nicht kompilieren
Verfasst: Di Mär 02, 2010 5:07 pm
von naums
Also Release: Absturz des Programms, also so eine Windows Fehlermeldung in der Art des "INIMaker reagiert nicht mehr und muss beendet werden" stils. öööhm. Compiler: GCC; Platform: Windows 7 64bit, keine GUI, externe Bibliotheken hab ich nur die IC.
ja aber wenn ich die Klassen in andre Dateien auslagere, dann muss ich doch wieder Header schreiben. Wie sähe denn der Header für die Klasse spalten aus?
den Code auslagern, ... naja, is ne Sache des Geschmacks, ich werde ja denk ich an dem INIMaker bissl weiterschreiben, da werde ich das vllt. sogar machen (müssen) =)
und in wie weit ist das ein Problem, wenn ich den Code nicht über HeaderDateien einbinde?
Re: Programm lässt sich nicht kompilieren
Verfasst: Di Mär 02, 2010 5:14 pm
von Dirty Oerti
naums hat geschrieben:den Code auslagern, ... naja, is ne Sache des Geschmacks
Falsch, das ist absolut keine Sache des Geschmacks. Code in Headerdateien einzubinden ist schlichtweg falsch. In Headerdateien darf nur Code stehen, wenn dieser als Inline gekennzeichnet ist.
Re: Programm lässt sich nicht kompilieren
Verfasst: Di Mär 02, 2010 5:20 pm
von cloidnerux
den Code auslagern, ... naja, is ne Sache des Geschmacks
Nein, nur eine Sache der Ignoranz. Wäre es wirklich gleichbedeutend, dann würden mindestens die Hälfte aller Projekte so Compiliert werden, werden sie aber nicht. Hinter Prinzipien wie Header und Objekt-Dateien stehen Jahre an Erfahrung. Es wird nicht nur wegen der Optik genutzt, sondern weil sich einfach nur Verdammt viele Fehler vermeiden lassen und man sich Stunden des Fehlersuchens schenken kann.
Und um zurück zu deinem Problem zu kommen, du hast uns immer noch nicht mitgeteilt, welcher Fehlermeldungen du beim Compilieren als Debug bekommst.
Re: Programm lässt sich nicht kompilieren
Verfasst: Di Mär 02, 2010 5:32 pm
von naums
"It seems that this project has not been build yet. Do you want to build it?"
ich klicke auf "ja" und es kommt folgendes raus:
Code: Alles auswählen
Precompiling header: win\ic.hpp
mingw32-g++.exe: M:\PROJECTS\CodeBlocks\INIMaker with Linux\win\ic.hpp: linker input file unused because linking not done
Linking console executable: bin\Debug\DatabaseMaker.exe
mingw32-g++.exe: win\ic.h.gch: No such file or directory
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
kommt der Fehler bei irgendwem von euch auch?
Re: Programm lässt sich nicht kompilieren
Verfasst: Mi Mär 03, 2010 9:01 pm
von naums
öh... okay... keiner schreibt mehr.... kein gutes Zeichen... Ihr kennt mich, ich <- Vollnoob, deshalb kann man mich trotzdem unterstützen...

Re: Programm lässt sich nicht kompilieren
Verfasst: Mi Mär 03, 2010 9:18 pm
von Xin
naums hat geschrieben:"It seems that this project has not been build yet. Do you want to build it?"
ich klicke auf "ja" und es kommt folgendes raus:
Code: Alles auswählen
Precompiling header: win\ic.hpp
mingw32-g++.exe: M:\PROJECTS\CodeBlocks\INIMaker with Linux\win\ic.hpp: linker input file unused because linking not done
Linking console executable: bin\Debug\DatabaseMaker.exe
mingw32-g++.exe: win\ic.h.gch: No such file or directory
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
kommt der Fehler bei irgendwem von euch auch?
Ich habe Dein Projekt ja nicht.
Ich vermute, dass hier der Compiler durcheinander kommt. Du hast eine ic.hpp (HPP!), er versucht eine vorkompilierte Headerdatei damit zu erstellen und sucht dann eine ic.h.gch (H!).
hpp ist eine eher ungewöhnliche Abkürzung, Ich würde entweder .h als Erweiterung verwenden oder in den Einstellungen die Voreinstellung 'Vorkompilierte Header' abschalten.
Re: Programm lässt sich nicht kompilieren
Verfasst: Mi Mär 03, 2010 9:21 pm
von Bebu
Wundert dich das irgendwie? Du legst uns hier einen ziemlichen Haufen Code vor die Tür, der kaum dokumentiert ist ohne Erklärung, was das Ding eigentlich genau tun soll, pflegst einen Programmierstil, der mit unübersichtlich schmeichelvoll umschrieben ist und zeigst keine Lust was daran zu ändern.
Also ich hab mir das ganze runtergeladen und konnte es unter Linux nicht mal kompilieren, weil 50 Fehler. Muss ich da irgendwo einen Schalter für Linux setzen? Wenn ja, wo? Warum steht das nicht als Kommentar im Text?
Re: Programm lässt sich nicht kompilieren
Verfasst: Do Mär 04, 2010 4:18 pm
von naums
öhm... Das mit Linux ist relativ klar... (hätte ich vllt. sagen können *g*) weil die IC (Improved Console) die WindowsAPI benutzt... (und die gesamten schreib und les Befehle gehen auch nur unter Windows (WritePrivateProfileString)) An der Linux kompatiblität werde ich für die Version nix mehr unternehmen... bin grade dabei das programm mit QT-GUI neu zu schreiben.
Ich bin eigentlich sehr bemüht Code so einfach wie möglich zu halten. manchmal gelingt mir das, manchmal aber auch net. Die Variablen sind zumindest relativ sinnvoll benannt, auch wenn nicht immer sinnvoll. ziemlich alle Variablen a,b,c,.... sind irgendwelche Counter, die zählen wie oft irgendeine Schleife schon durchgelaufen ist.
Wenig dokumentiert.... jaaaaah, sorry... das hab ich vergessen ^^. Ich schreib erst den Quellcode und dann eigentlich die Kommentare... außer ich vergesse die Kommentare...
@xin: kann man denn eine .hpp so einfach in eine .h umbenennen, oder muss ich da irgendwas andres beachten?