Raus aus der Konsole
-
Jetzt versuche ich immernoch, Allegro unter Cygwin zum Laufen zu bringen ....
Ich hab mir von http://alleg.sourceforge.net/wip.html die Version 5 runtergeladen. Aber ich weiß nicht, wohin mit den Daten. Der Inhalt sieht zb ganz anders aus als in der Installationsanleitung aus dem Youtube Tutorial.
Für Cygwin hab ich diese Anleitung gefunden und befolgt:
http://alleg.sourceforge.net/stabledocs/en/build/mingw32.html
Dafür hab ich aber nur die Datei dx70_mgw.zip von der alleg.sourceforge.net benutzen müssen.Nun kompiliere ich einen Testcode mit #include <allegro.h>
Cygwin gibt zurück, dass allegro.h nicht gefunden werden kann.
Der Bash gcc -v gibt aber keine Fehlermeldung ...Hier hab ich einen Screenshot aus meinem Cygwin hochgeladen: http://up.picr.de/14029456ek.png
Für die Konsole kompiliere ich immer mit
gcc -Wall -pedantic -o main.exe main.c
falls ich den Linker brauche, muss ich nur weitere xyz.c hinzufügen. Diese drei Befehle waren also völlig ausreichend für mich.
Jetzt soll ich '-mno-cygwin' mitverwenden, aber cygwin beachtet den Flag nicht... (siehe Screenshot).... du meine Güte ....

-
Richtige Seite: http://alleg.sourceforge.net/download.html
Deine Links sind hauptsächlich für ältere Versionen von Allegro.
-
Lymogry schrieb:
Gegeben werden mehrere floats, diese enthalten Längen, Winkel oder auch Kurveneigenschaften. Gezeichnet werden sollen sie nach einem bestimmten Algorithmus, dabei sollen auch neue Punkte als Schnittpunkte entstehen und damit soll weitergezeichnet werden.
Ich möchte einen Maßstab mitführen, also sollte das passend skalierbar sein, ohne dass alles neu berechnet werden muss. Es muss noch gedruckt werden und dabei kann die Größe des Bilder die Größe eines DinA4 Blattes übersteigen, also muss noch passend zugeschnitten werden, aber das ist dann ein anderes Thema.Die Implementierung dieser Aufgabenstellung bedingt keine OOP. Jede klassische bzw. neumodische Programmiersprache sollte sowas können, und da du C schon kannst...
Lymogry schrieb:
Ich weiß jetzt nicht, ob ich auf C++ umsteigen soll und mich mich in die Objektorientierung umarbeiten soll. Hab bereits mitbekommen, dass Grafik und C++ sich besser vertragen als Grafik und C.
Quatsch.
Lymogry schrieb:
Aber eigentlich ist es ja nur Geometrie.
Richtig erkannt, und geometrische/mathematische Algorithmen kann nahezu jede gängige Programmiersprache erledigen, s.o.
Lymogry schrieb:
Wäre ein Umstieg Kanonen auf Spatzen?
Oder kann ich das in C realisieren?Ja. Ja.
Um es mal zusammenzufassen: Für C gibt es etliche Bibliotheken für alle möglichen Anwendungsfälle und natürlich auch für grafische Ausgaben, oftmals sind die auch noch Opensource o.ä. und kosten nichts.
Wenn du dich auf eine bestimmte Plattform (bei dir wohl Windows) beschränken kannst, ist die Auswahl sogar noch weitaus größer.
OOP ist keine Bedingung für grafische Ausgaben.Ein anderer Weg wäre vielleicht auch, sich einer Hostanwendung zu bedienen (weil die z.B. die grafischen Ausgaben schon erledigt und quasi als Frontend arbeitet) und diese via existenter C-Schnittstelle mit selbstberechneten Daten zu versorgen, du könntest also deine bisherigen C-Quellcodes wiederverwenden.
MATLAB (als Studentenversion kostenfrei) wäre da zu nennen, da du wohl weniger mit Spielen sondern mit mathematischen Aufgaben zu tun hast.
D.h. aber natürlich auch wieder, dass du primär dieses neue Frontend erstmal beherrschen musst, d.h. dessen API/Quasiprogrammiersprache erlernen musst. Aber du bist eben offen zu C, da sehr viele solcher Frameworks eher C als C++ Schnittstellen anbieten, wenn sie denn überhaupt welche anbieten.
-
Wutz schrieb:
OOP ist keine Bedingung für grafische Ausgaben.
Aber es macht insbesondere GUIs um einiges einfacher. Glücklickerweise ist OOP keine Bedingung, C nicht verwenden zu können (siehe Gtk+).
-
Es gibt Fortschritte bei Cygwin und Allegro 5...
Ich befolge nun die Readmes aus dem Allegro5 Archiv
allegro-5.0.9.zip von http://alleg.sourceforge.net/download.html:1. Aufgabe (das sagt die README aus Allegro5)
cmake installieren: http://www.cmake.org (README von cmake:)
$ ./bootstrap2. Aufgabe (README_make aus Allegro5)
Allegro5 im Cygwin Ordner entpacken. Einen neuen Ordner 'Build' erstellen. Mit cygwin in diesen Ordner wechseln und dann
$ cmake ..
Er hat gemeckert, dass ich libFlAC, libdump, libvorbis nicht habe .. hab sie aber noch nicht runtergeladen (könnte das den Fehler unten erklären?!)3. Aufgabe
Allegro erstellen (im selben Build Ordner)
$ make
$ make installZum Ende hin bin ich diesem Tutorial gefolgt: http://wiki.allegro.cc/index.php?title=Install_Allegro5_From_Git/Linux/Debian
(obwohl ich auf Windows7 mit Cygwin bin!)Erstes Kompilieren: gcc -Wall -pedantic -o main.exe main.c
........ er meckert nicht mehr, dass die Header Datei fehlt .... uuuh ein spannender Moment.
Dafür jede Menge Fehler im Testcode:
#include <allegro5/allegro.h> int main(){ int x=0,y=0; allegro_init(); install_keyboard(); set_color_depth(16); set_gfx_mode( GFX_AUTODETECT, 800 , 600, 0, 0); while(key[KEY_ESC]==0) { textprintf_ex(screen, font, x, y, makecol(255, 255, 255), makecol(0, 0, 0), "Hallo Welt!"); } return 0; } END_OF_MAIN();Den Code hab ich von http://www.c-programmieren.com/Allegro-Tutorial.html
Der benutzt wohl eine ältere Allegro Version. Sind die Funktionen unter Allegro 5 etwa nicht mehr aktiv?!?
Kann ich mir eigentlich nicht vorstellen ...Also .. warum kompilliert er das nicht ...?
-
Ein noch minimaleres Beispiel:
#include <stdio.h> #include <allegro5/allegro.h> int main(int argc, char **argv){ ALLEGRO_DISPLAY *display = NULL; display = al_create_display(640, 480); al_destroy_display(display); return 0; }In Cygwin kompiliert:
$ gcc -Wall -pedantic -o main.exe main.c undefined reference to '_al_create_display' undefined reference to '_al_destroy_display' collect2: ld gab 1 als Ende-Status zurückAber die Header wird eingebunden?!
Was passiert hier? Warum klappt das nicht??... langsam geht mein Latein zu ende

-
Der Code mit END_OF_MAIN() geht, wie du schon sagtest, nicht mehr mit Allegro 5.
Dein anderer Code sollte funktionieren.
Du musst noch die Lib-Dateien in den Linker Settings hinzufügen, so weiß der Compiler nur, dass es eine Funktion al_create_display gibt, aber nicht was sie macht.
-
Hey Nathan,
ja danke!
Nathan schrieb:
Du musst noch die Lib-Dateien in den Linker Settings hinzufügen, so weiß der Compiler nur, dass es eine Funktion al_create_display gibt, aber nicht was sie macht.
Ja. Das hab ich jetzt auch gefunden:
17. This won't compile just yet. MAke sure to include the allegro library files as shown below:
Click Project->Build Options->Linker Settings. Click Add. Click the "..." box.
Navigate to "C:\codeblocks\MinGW\lib" and select "liballegro.dll.a".
Keep the path as relative, or not, it depends on what you prefer if the locations of the file changes in the future.https://www.allegro.cc/forums/thread/606041
Aber ich kann das nicht mit Cygwin linken .... ???
Dazu hab ich das hier gefunden und bereits befolgt: http://alleg.sourceforge.net/stabledocs/en/build/mingw32.html
bringt nichts.
-
Wo hast du denn die lib-Dateien abgespeichert?
Genau diesen Ort gibst du in den Linkersettings an.
-
Nathan schrieb:
Wo hast du denn die lib-Dateien abgespeichert?
Genau diesen Ort gibst du in den Linkersettings an.Wenn ich nur wüsste wie .....
ich suche schon seit Stunden und finde nichts.

Die libs hab ich unter cygwin/lib und unter usr/local/lib
Sind das die Linker Settings?
export ALLEGRO_USE_CYGWIN=1 export MINGDIR=/usr/local export CPATH=/usr/local/include export LIBRARY_PATH=/usr/local/lib
-
Soweit ich das weiß (und ich kenn mich mit Cygwin nicht aus), hast du nur gesagt, wo die Datein sind, nicht welche dazu kommen sollen.
Nutzt du eine IDE, wenn ja welche?
-
Hmm .. welche dazu kommen sollen...
Ich hab Allegro mit make und cmake quasi 'installiert'. Da hab ich einen neuen Ordner Build erhalten. Dadrin sind einige neue dlls erschienen, die heißen liballegro_xyz.dll, und noch vieles mehr. Das alles ist in dem Cygwin Ordner. Einiges hab ich auch in die Cygwin Bib per Hand kopiert.
Ich benutz keine IDE .....
Code in einem Editor (damit es bunt und übersichtlich ist, hab ich CodeLite) dann mit Cygwin kompilieren. Cygwin tut nur so als wäre ich auf Linux unterwegs.
Aber ich bin nicht auf Linux, ich hab Windows7. Und ich kenne mich mit Linux nicht aus. Ich hab immer nur die Befehle
gcc -Wall -pedantic -o main.exe main.c
benutzt ..... Damit hatte ich keine Probleme bisher.Cygwin Installation geht auch vollautomatisch: http://cygwin.com/install.html
die Setup Datei lädt die Pakete runter, die man haben will und mehr muss man nicht machen!
Allegro wird da nicht angeboten, also muss man das von Hand hinzufügen.Ansonsten hat mich cygwin immer sehr verwöhnt, ich musste mich um nichts kümmern.

Und wenn man C kompiliert, bekommt man in Cygwin immer seeeeeeehr genaue und verständliche Warnungen/Fehler angezeigt. Bin damit immer gut gefahren und eigentlich sehr zufrieden..... so langsam werd ich verrückt von ....

-
Hast du auch einen Ornder lib?
Mit Dateien wit liballegro_xyz.a?
Eine heißt monolith.
Die fügst du mit -l in der Befehlszeile hinzu.
-
Eine monolith Datei hab ich nicht ....

Wird auch nichts in der Windows Suche gefunden.
Ich wollt schon mal Danke sagen, dass du mir so bereitwillig hilfst!
Find ich klasse. Ich komme hier schon gar nicht mehr zurecht... ^^
-
Lymogry schrieb:
Ich benutz keine IDE .....
Du hast Windows und frickelst mit Cygwin rum?
Mensch Jung, mach dir das Leben nicht unnötig schwer.
http://www.microsoft.com/visualstudio/deu/products/visual-studio-express-products
-
CJosef schrieb:
Du hast Windows und frickelst mit Cygwin rum?
Das wird bei uns an der Uni so geschätzt.

Ich komme mit cygwin nicht mehr weiter .....

So ... Visual Studio also..
Und garantierst du mir, dass ich Allegro mit Visual Studio 2010 zum Laufen bekomme?
Das muss ich mir jetzt auch erstmal runterladen (Visual Basic 2010 hab ich jetzt). Ist der Compiler direkt C fertig, oder muss ich da noch was tun??Dann zu Allegro:
Im Videotutorial zur Installation
http://www.youtube.com/watch?v=98hTrHen7IA&list=PL9333715188CD7669
hat der Kerl 3 Ordner: Bin Include und Lib
Ich hab keins davon ... und weiß auch immer noch nicht, wo die herkommen sollen ...... schaut doch: http://alleg.sourceforge.net/download.html
Ich schreibe lieber geschlechtsneutral, dann bekommt man eher ne Antwort, aber ich oute mich mal jetzt als weiblich.
Hiiiiilfeeee .... "Jungfrau in Nöten"
-
-
...
-
Lymogry schrieb:
Und garantierst du mir, dass ich Allegro mit Visual Studio 2010 zum Laufen bekomme?

Das du es zum Laufen bekommst, kann ich natürlich nicht garantieren!

Btw. gibt es seit geraumer Zeit Visual Studio Express 2012,
ich würde lieber die aktuelle Version runterladen.
-
Habs gerade beim Mampfen ausprobiert.
Garantieren kann ich dir, dass es(MSVC 11 - zip) unter Visual Studio 2012 läuft.
http://s1.directupload.net/images/130407/y8jvaer3.png
Ich habe mich an die von Nathan verlinkte Anleitung gehalten.
Wenn du C-Programme erstellen willst, dann musst du allerdings deine Quelldatei main.c nennen, sonst kompiliert VS im C++ Modus.Lymogry schrieb:
Ist der Compiler direkt C fertig, oder muss ich da noch was tun??
Jepp direkt fertig ist...
Du musst deinen Dateien lediglich die richtige Endung verpassen -
*.c für C Programme bzw. *.cpp für C++ Programme.