1Danke
ERLEDIGT
JA
JA
ANTWORTEN
14
14
ZUGRIFFE
329
329
EMPFEHLEN
-
Ich stehe vollkommen im Wald und finde trotz zig1000 Webseiten zum Thema nicht heraus, wie das funktioniert.
Ich verwende die IDE von Code::Blocks unter Windows7 Ultimate 64 bit.
Darin enthalten ist MinGW/GCC.
Zusätzlich installiert habe ich dann noch MinGW-w64.
Das funktioniert alles prima, völlig ohne Installation, nur ein paar .zip entpacken, ganz ohne Anpassung von irgendwelchen Systemvariablen, kein Path oder sonstwas, ich muss nur in der IDE unter "Global Compiler settings" die "Toolchain executables" einstellen und kann prima sowohl 32bit als auch 64bit Anwendungen für Windows coden.
Jetzt möchte ich in meinen Anwendungen etwas mehr Möglichkeiten haben, oder anders, ich will nicht nur .bmp sondern auch andere Grafikformate laden können, wie z.B. .jpg oder .png.
Begriffen habe ich, dass die allermeisten Coder dazu libpng und libjpeg verwenden, aber das wars auch schon.
Angefangen damit, dass ich nicht mal weiss, was ich downloaden muss, weil es mehrere Dutzend Versionen/Builds gibt und dann auch noch gleich zu Anfang irgendwo steht, dass libpng voraussetzt, dass man zlib hat, über keine Ahnung wie ich das bilde oder installiere oder einstelle, bis hin zur Frage, gibt es das in 2 Versionen für 32bit und 64bit, ich habe keine Ahnung und ich werde beim besten Willen nicht schlau aus den 1000den Seiten die ich dazu gefunden habe.
Hat jemand eine Anleitung "für Doofe", wie man das in Code::Blocks/MinGW "einbaut"?
-
Hi
libpng: Version 1.5.4
zlib: Version 1.2.5
Du ladest den Source von zlib herunter.
Aus dem Archiv entpacken, kompilieren, heraus kommt min. eine lib-Datei
Dann den Source von libpng holen
Entpacken.
In den Linkereinstellungen (Zusätzliche Abhängigkeiten) die lib-Datei von zlib eintragen.
libpng kompilieren.
Bei deinem Programm dann die lib-Datei einbinden (in den Linkereinstellungen), die beim Kompilieren von libpng entstanden ist.
Mit jpg geht es ähnlich, nur ohne zlib.
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
05.09.11 01:30 #3SE Tutorials.de Gastzugang
Wow ... wusste garnicht das das unter C so ein riesen Aufwand ist eine Lib zum laufen zu bekommen. Oder Java bin ichs ja gewöhnt einfach die Lib laden ... das Zip mit in den CP und gut is ... *kann natürlich mal vorkommen das man nur Source hat und den compilen muss ... in der Regel bekommt man aber fertige Libs*.
Das mit Abhängigkeiten kenn ich aber auch so krass ... und sogar noch krasser wenn eine Lib eine bestimmte Version einer Abhängigkeit vorraussetzt die aber von einer anderen Lib in einer anderen Version gebraucht wird ... alles nich so einfach.
-
So ein Aufwand ist es doch gar nicht.
Entpacken: tar.gz-Archive etc. sind unabhängig von der Sprache.
Kompilieren deshalb, weil es ja je nach OS verschiedene Binärformate etc. gibt.
Ist aber bei den meisten Libs eine Sache von einer Minute, da die Projektdateien für verschiedene Compiler oft schon mitgeliefert werden (auch hier bei libpng).
Und die Sache mit zlib...Wenn die libpng-Leute zlib aus Lizenzgründen oder was auch immer nicht gleich mitgeben dürfen, was soll man machen?
Bei Java: Ich sag nur Maven...was das manchmal so alles aus dem Internet holt
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
05.09.11 03:15 #5SE Tutorials.de Gastzugang
OFF-TOP
Gut ... weder kenne ich Maven noch verstehe ich deine Sorglosigkeit.
Das man sich Source anstatt Binär aus dem Netz laden muss ist ja nun wirklich nicht das Problem ... manchmal wünschte ich mir das es bei Java auch so wäre anstatt das meiste in fertig compileten Libs anzubieten ... doch hier schlägt Java's größte Stärke zu : wenn richtig implementiert läuft eine Lib , also nur einmal compilete Class-Files , auf allen VM gleich ... ist ja bei C deutlich anderst.
Und das viele gerade auch aus lizenztechnischen Gründen die Abhängigkeiten beilegen können ist ja in Java auch nicht viel anderst. Was ich nur wirklich so aufwändig an Sprachen empfinde welche nicht über ein solche hohes Abstraktionslevel wie Java verfügen das man für jede Hardware alles komplett neu übersetzen und mit den Abhängigkeiten verknüpfen muss.
Ich glaub aus genau diesem Grund habe ich nach dem 3ten Kapitel des OpenBook C von A-Z aufgehört ... weil es mir persönlich zu schwierig ist.
Andererseits : wenn es nicht Leute geben würde die diese Sprache beherrschen würde es auch keine lauffähigen VM für Java auf unterschiedlichen Systemen geben die so aufgebaut sind damit eben der compilete Bytecode dierekt portierbar ist ... *so eine verdammte Zwickmühle*.
-
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
05.09.11 03:39 #7SE Tutorials.de Gastzugang
(noch mehr OT)
Wie war dich dieser schöne Spruch ... *grübel*
Erst wenn jede Idee patentiert ...
und jedes Programm geschrieben wurde ...
werden wir merken das Anwälte nicht programmieren können ...
*oder sowas in der Art jedenfalls*
-
Also ich kenns in der zweiten Zeile mit "und jeder Programmierer eingesperrt wurde"
...da Pr.s ja doch verglichen mit Word-only-Nutzern sehr häufig Raubkopien erstellen, hacken und sich nicht gerne an Lizenzen halten...
Aber wir sollten besser mit OT aufhren, bevor uns ein Mod auf die Finger haut
edit: obwohl, es ist keiner hier
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Vielleicht ist auch FreeImage für dich eine Alternative. Benutzt die von dir angegebenen Libs und noch bisschen mehr und verpackt alles in eine gleichbleibende Schnittstelle. Alle Abhängigkeiten werden bereits mitgeliefert. Leider funktioniert die statische Lib nicht (beim verwenden gibt es Linker-Fehler), es sollte also die Variante mit der DLL genommen werden.
Ob es auch ein mitgeliefertes Projekt für Code::Blocks gibt, kann ich dir gerade nicht sagen.
-
05.09.11 10:30 #10
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Sowohl zlib als auch libpng verwenden CMake als Buildsystem.
Einfach CMake installieren, die Quelldateien entpacken und CMake GUI starten.
Das Quellverzeichnis auswählen, dann konfigurieren und CMake Code::Blocks Projektdateien generieren lassen. Diese dann in Code::Blocks öffnen und die Bibliothek erstellen...
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Wow, da habe ich ja eine tolle Diskussion angeregt.
Verstanden habe ich allerdings herzlich wenig.
Immerhin habe ich jetzt passende Versionsnummern und ein paar Anleitungen zum compilieren, da werde ich mich mal dran versuchen.
Aber es fehlt mir die Info, wie das mit 32bit und 64bit ist, was für mich ganz wichtig wäre.
-
Ich hab zwar auf die Schnelle keine "offiziellen" Angaben gefunden, aber es scheint bei allen drei Libs Leute zu geben, die es schon für 64bit kompiliert haben. Der Source ist also sogar bei libjpg entsprechend ordentlich gemacht.
Also einfach beim kompilieren angeben.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Genau das ist mein Problem, bzw. damit bin ich mir nicht sicher.
Ich habe ein paar Infos gefunden, dass die libs mit 64bit Windows "kompatibel" sind, aber das heisst nicht mehr, als dass es dank syswow64 unter Windows läuft, ob es echtes 64bit ist, wissen die Götter.
Wenn ein 64bit Compiler nicht meckert, ist das sicher ein gutes Zeichen, aber heisst das, dass das Ganze bis runter in die letzten Abhängigkeiten von zlib wirklich echtes 64bit ist?
-
Ja, ein x64-Compiler spuckt ganz echte x64-Binaries aus

Dann noch einen Test machen, ob man bei zB. zlib irgendwas erfolgreich dekomprimieren kann...wenn das auch geht sollte es ziemlich sicher passen.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Dann sage ich ganz vielen Dank für die Hilfe.
Mit etwas Glück müsste ich das jetzt auf die Reihe bekommen.
Ähnliche Themen
-
Libpng Dokumentation
Von Faller im Forum C/C++Antworten: 3Letzter Beitrag: 07.08.07, 10:42





Zitieren


Login






