Forum: PC-Programmierung Probleme Grafiklibrary allegro zum laufen zu bekommen


von J. T. (chaoskind)


Lesenswert?

MoinMoin,

ich wollte mal wieder etwas machen, wobei eine grafische Ausgabe ganz 
nett wäre. Es geht um eine Art komplexeres Conways Game of Life. Siehe 
auch dieser Beitrag: 
Beitrag "Re: zufallsabhängig eine Anzahl von Instanzen? eines Structs erstellen"

Da die Anfänge von der Welterzeugung nun funktionieren, wollte ich erste 
grafische Darstellungen haben und hab mich dunkel an Allegro erinnert. 
Ich hab die Anfänge noch in nem Onlinecompiler gemacht, mir dann aber 
CodeBlocks installiert, damit hatte ich früher auch mal rumgemacht. Dann 
Allegro 5.2.7 geladen und in CodeBlocks durch die Einstellungen gewühlt, 
bis er endlich nicht mehr über die fehlende allegro.h gemeckert 
hat.(Dunkel erinnere ich mich, dass das auch früher ein ewiges 
rumgehangel war, bis ich es zum laufen bekommen hatte..)
Dann hab ich versucht, die al_init() auszuführen. Obwohl sie mir vom 
AutoFill vorgeschlagen wurde, hat er beim compilieren nen Fehler 
(undefined reference to al_install_system)geworfen.

Daraufhin hab ich dann "irgendwo" gelesen, DevC++ hätte nen supidupi 
PacketManager, mit dem das alles wie von selbst klappt. ALso DevC++ 
installiert, Allegro in den PacketManager geworfen, der hat fleißig 
installiert. Aber DevC++ findet dann wieder nicht einmal die allegro.h, 
obwohl sie halt genau da liegt, wo der PacketManager sie hingeschoben 
hat....

Wieso ist das eigentlich immer so ein Krampf, sowas zum laufen zu 
bekommen? Und nein, dass ist nicht die Hauptfrage. Die Hauptfrage ist: 
Wie bekomme ich Allegro in CodeBlocks oder meinetwegen auch DevC++ zu 
laufen?

MfG Chaos

von nicht"Gast" (Gast)


Lesenswert?

Hallo,

du hast dem compiler gezeigt, wo die header files liegen. Jetzt musst du 
noch dem linker sagen, wo die .lib files sind.

Klingt nämlich nach einer Fehlermeldung vom Linker

von Content B. (Firma: Da) (contentblocker_da)


Lesenswert?

J. T. schrieb:
> MoinMoin,
>
> ich wollte mal wieder etwas machen, wobei eine grafische Ausgabe ganz
> nett wäre. Es geht um eine Art komplexeres Conways Game of Life. Siehe
> auch dieser Beitrag:
> Beitrag "Re: zufallsabhängig eine Anzahl von Instanzen? eines Structs erstellen"

Deine Feuilleton ist falsch konfiguriert!

von J. T. (chaoskind)


Lesenswert?

nicht"Gast" schrieb:
> Hallo,
>
> du hast dem compiler gezeigt, wo die header files liegen. Jetzt musst du
> noch dem linker sagen, wo die .lib files sind.
>
> Klingt nämlich nach einer Fehlermeldung vom Linker

In Codeblocks zumindest hatte ich ihm auch das mitgeteilt.

Content B. schrieb:
> Deine Feuilleton ist falsch konfiguriert!

Bitte was?

von J. T. (chaoskind)


Lesenswert?

Wobei die .lib hier .a sind.

von J. T. (chaoskind)


Lesenswert?

In DevC++ läuft es zwischenzeitlich. Aber der Editor ist grausam. Wenn 
ich in CodeBlocksk auf die selben Dateien verweise wie in DevC++, geht 
es trotzdem nicht. Ich bekomme immer noch ne undefined reference to und 
nen error: ld returned 1 exit status.

Gibt es irgendeinen geheimen Trick, CodeBlocks zu sagen, womit er 
verlinken soll?
Bisher sage ich es ihm unter Projects->BuildOptions->LinkerSettings und 
Settings->CompilerSettings...

von Oliver S. (oliverso)


Lesenswert?

J. T. schrieb:
> Ich bekomme immer noch ne undefined reference to

Der geheime Trick hängt davon ab, wie genau die Fehlermeldung 
weitergeht.

Oliver

von J. T. (chaoskind)


Lesenswert?

Oliver S. schrieb:
> Der geheime Trick hängt davon ab, wie genau die Fehlermeldung
> weitergeht.

Naja sie geht so weiter, dass er sagt, er fände eine Funktion nicht, die 
mir aber von dem Autovervollständigen vorgeschlagen wird. Wenn ich dem 
Linker von Devc++ sage, er soll mit dieser Datei verlinken, dann geht 
es. Sage ich dem codeblockslinker, er soll die selbe Datei nutzen, kommt 
es zu der Fehlermeldung. Immerhin ist er inzwischen soweit, das Fehlen 
einer Unterfunktion der aufgerufenen anmäkelt. Vorher hatte er direkt 
das Fehlen der genutzten Funktion angemäkelt, was ich überhaupt nicht 
verstehe, denn zwischenzeitlich hatte ich eigentlich nichts geändert....

von Oliver S. (oliverso)


Lesenswert?

In diesem Fall wirst du wohl bei DevC++ bleiben müssen.

Alternativ würde etwas RTFM zum anlegen von Projekten in CodeBlocks auch 
helfen, aber das scheint ja nicht zum Ziel geführt zu haben.

Oliver

von Rolf M. (rmagnus)


Lesenswert?

J. T. schrieb:
> Oliver S. schrieb:
>> Der geheime Trick hängt davon ab, wie genau die Fehlermeldung
>> weitergeht.
>
> Naja sie geht so weiter, dass er sagt, er fände eine Funktion nicht, die
> mir aber von dem Autovervollständigen vorgeschlagen wird.

Ja, weil die Autovervollständigung auf Compiler-Ebene arbeitet, die 
Fehlermeldung aber vom Linker kommt.

> Wenn ich dem Linker von Devc++ sage, er soll mit dieser Datei verlinken,
> dann geht es. Sage ich dem codeblockslinker, er soll die selbe Datei
> nutzen, kommt es zu der Fehlermeldung. Immerhin ist er inzwischen soweit,
> das Fehlen einer Unterfunktion der aufgerufenen anmäkelt. Vorher hatte er
> direkt das Fehlen der genutzten Funktion angemäkelt, was ich überhaupt
> nicht verstehe, denn zwischenzeitlich hatte ich eigentlich nichts
> geändert....

Deswegen ist es besser, wenn man auch ohne dieses ganze IDE-Geraffel 
versteht, was da vor sich geht. Der von dir genannte Fehler kann 
verschiedene Ursachen haben. Entweder fehlt die Angabe irgendeiner 
Library, oder es wird auf eine falsche Version verwiesen, oder die 
Linkreihenfolge ist falsch, oder oder oder. Das ist eben die Crux, wenn 
eine IDE einem das alles macht. Sobald mal was nicht tut, steht man da, 
wie der Ochs vor'm Berg.

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

J. T. schrieb:
> Dann
> Allegro 5.2.7 geladen

Mal dumm gefragt: Was hast du denn da geladen?

Oliver

von J. T. (chaoskind)


Lesenswert?

Oliver S. schrieb:
> Mal dumm gefragt: Was hast du denn da geladen?

Das hier:
https://www.allegro.cc/forums/thread/618381

von J. T. (chaoskind)


Lesenswert?

Rolf M. schrieb:
> Entweder fehlt die Angabe irgendeiner
> Library, oder es wird auf eine falsche Version verwiesen, oder die
> Linkreihenfolge ist falsch

dann sollte es aber auch in DevC++ unfunktionell sein.

Hat evtl noch jemand, der sich mit CodeBlocks auskennt, was dazu zu 
sagen wo es ausser in den ProjectSettings und GlobalSettings man etwas 
zum Linker einstellen kann?

Rolf M. schrieb:
> Deswegen ist es besser, wenn man auch ohne dieses ganze IDE-Geraffel
> versteht, was da vor sich geht.
Naja, grob verstehe ich schon, was da so grundsätzlich passiert. Ich 
habe nur eigentlich so überhaupt gar kein Interesse daran, mich auch 
noch mit dem make-krams auseinander zu setzen. Ich will mich einfach nur 
mit dem befassen, was passieren soll. Es ist halt nur doof, wenn das so 
nicht geht, im großen und ganzen hast du mein Problem gut erkannt und 
zusammengefasst. Hilfreich war es irgendwie trotzdem nicht.

Oliver S. schrieb:
> Alternativ würde etwas RTFM zum anlegen von Projekten in CodeBlocks auch
> helfen, aber das scheint ja nicht zum Ziel geführt zu haben.

Auch du hast da etwas grundsätzlich richtiges erkannt. Nur leider auch 
völlig ohne jeden praktischen Wert, was Änderung des Problems anbelangt.

von richtige Reihenfolge (Gast)


Lesenswert?

Es gibt doch im Netz dutzende Anleitungen dazu:

https://raw.githubusercontent.com/anagorko/zpk2014/master/z7/allegro_codeblocks.pdf

Und wenn die IDE nicht funktioniert, versuche doch mal den Befehl in der 
Konsole auszuführen. Die Befehle stehen doch alle auf der Webseite:

https://github.com/liballeg/allegro_wiki/wiki/Quickstart

Wenn das klappt, dann weißt du zumindest, dass die Installation korrekt 
ist.

Dann kannst du dich mit der IDE beschäftigen.

von Rolf M. (rmagnus)


Lesenswert?

J. T. schrieb:
> Rolf M. schrieb:
>> Entweder fehlt die Angabe irgendeiner
>> Library, oder es wird auf eine falsche Version verwiesen, oder die
>> Linkreihenfolge ist falsch
>
> dann sollte es aber auch in DevC++ unfunktionell sein.

Dann vergleiche doch einfach mal die Linker-Kommandozeile, die die 
beiden produzieren, miteinander. Da muss es ja irgendeinen Unterschied 
geben. Das gibt dir vielleicht einen Hinweis darauf, was falsch 
eingestellt sein könnte.

> Rolf M. schrieb:
>> Deswegen ist es besser, wenn man auch ohne dieses ganze IDE-Geraffel
>> versteht, was da vor sich geht.
> Naja, grob verstehe ich schon, was da so grundsätzlich passiert. Ich
> habe nur eigentlich so überhaupt gar kein Interesse daran, mich auch
> noch mit dem make-krams auseinander zu setzen.

Wie schon gesagt: Das ist genau so lange ganz praktisch, bis was nicht 
so funktioniert, wie es soll.

> Ich will mich einfach nur mit dem befassen, was passieren soll. Es ist
> halt nur doof, wenn das so nicht geht, im großen und ganzen hast du mein
> Problem gut erkannt und zusammengefasst. Hilfreich war es irgendwie
> trotzdem nicht.

Ich kenne mich mit den genannten IDEs nicht aus, habe aber auch 
derartige Probleme nicht.

von Oliver S. (oliverso)


Lesenswert?

J. T. schrieb:
> Oliver S. schrieb:
>> Mal dumm gefragt: Was hast du denn da geladen?
>
> Das hier:
> https://www.allegro.cc/forums/thread/618381

Nun ja, wer unpräzise fragt.

Ich versuchs nochmal:

Hast du
a) den Sourecode
b) eine der vorcompilierten MinGW-Libs

heruntergeladen, und wenn b), welche?

Oliver

von J. T. (chaoskind)


Lesenswert?

Heureka es scheint erstmal zu kompilieren in CodeBlocks.

richtige Reihenfolge schrieb:
> Es gibt doch im Netz dutzende Anleitungen dazu:
>
> 
https://raw.githubusercontent.com/anagorko/zpk2014/master/z7/allegro_codeblocks.pdf

Ich bin nach nem Youtube-"tutorial" vorgegangen. Der hatte vermutlich 
dein verlinktes PDF als Vorlage, sagte jedoch man solle einfach das 
neuste allegro laden, das man findet. Das war in meinem Fall 
"Allegro-5.2.7", wo ich es fand, kann ich leider nicht mehr sagen. Die 
hatten aber ein anderes Namensschema. Zwar sehr ähnlich, und die 
ähnlichsten waren dann auch die, die in DevC++ funktioniert haben.

Nachdem ich nun von direkt von Allegro.cc "allegro-5.0.10-mingw-4.7.0" 
geladen habe, klappt. Vielen Dank dafür.

Rolf M. schrieb:
> Dann vergleiche doch einfach mal die Linker-Kommandozeile, die die
> beiden produzieren, miteinander.

Da ich mit DevC++ so überhaupt gar nicht zu recht komme, ausser auf den 
Build und Run button zu klicken, und es sehr sparsam mit Informationen 
ist, kann ich da leider nicht viel vergleichen. In CodeBlocks meckerte 
der Linker über "al_init_systeminit" not fund.

Aber das is ja nu jetzt behoben =)

Oliver S. schrieb:
> Nun ja, wer unpräzise fragt.

Die präzisierung der Frage hat ungemein geholfen, vor allem in 
Zusammenhang mit dem von "Richtige Reihenfolge" rausgesuchtem PDF. Auch 
dafür meinen herzlichen Dank. Was ich lud sagte ich ja weiter oben im 
Beitrag.

Also nochmal für alle, die auch Probleme haben, CodeBlocks mit Allegro 
zum laufen bekommen:
Einfach haargenau und Schritt für Schritt der Anleitung im PDF folgen. 
Stand: siehe Postingdatum


P.S.
Und nicht, wie ich gerade, vergessen, die entsprechende dll, mit in dem 
Projektordner von CodeBlocks zu schmeißen. Ich bin mir gerade nicht 
sicher, ob dass noch im PDF erwähnt wird.

: Bearbeitet durch User
von richtige Reihenfolge (Gast)


Lesenswert?

im pdf-File wird ja eine uralte Version benutzt. Diese heute zu 
benutzen, ist nicht wirklich eine Lösung.

Das sollte keine Anleitung sein, sondern nur eine Orientierung.

Du musst halt schauen, wo in der IDE was eingestellt wird. Du willst ja 
damit arbeiten.

von W.S. (Gast)


Lesenswert?

J. T. schrieb:
> MoinMoin,
>
> ich wollte mal wieder etwas machen,...

Tja, das was du wolltest, scheint mir am ehesten mit den Worten "ich 
wollte mal wieder etwas zusammenkopieren..." umschreibbar zu sein. Ich 
halte sowas nicht für die zielführende Methode. Installiere dir irgend 
ein Programmpaket für deine Lieblings-Programmiersprache und 
konzentriere dich zuvörderst auf das Verstehen und Formulieren der 
grundlegenden Algorithmen. Das führt dann ziemlich geradlinig zu einem 
funktionierenden Programm.

W.S.

von J. T. (chaoskind)


Lesenswert?

W.S. schrieb:
> Tja, das was du wolltest, scheint mir am ehesten mit den Worten....

Tja, mir hingegen scheint, du solltest einen Kurs im sinnerfassenden 
Lesen besuchen.
Dann sollte auch dir klar werden, das Verweise auf make und Co im Laufe 
des Threads geflissentlich übersehen wurden und ich es wirklich mit 
Codeblocks machen möchte, meine ach so zusammenkopierten Algorithmen zu 
schreiben. Da es in der alten Version geht, und es sogar Beschreibungen 
gibt, wie die neue zum laufen bekommen sei, gehe  ich davon aus, dass 
das grundsätzlich gehen sollte. Dafür ist aber kein Wissen über 
Algorithmen nötig, sondern Wissen über Codeblocks. Mir fehlt dieses. Und 
wenn es dir auch fehlt, kannst du in diesem Thread wohl nichts 
beitragen. Aber schon dass du dich so eloquent profilieren konntest.

von Johannes S. (Gast)


Lesenswert?

Da kannste machen nix. Das W.S. alles verteufelt was über den Aufruf des 
Compilers in einer Batchdatei hinausgeht, dürfte hier doch mittlerweile 
hinlänglich bekannt sein.

von W.S. (Gast)


Lesenswert?

J. T. schrieb:
> Dann sollte auch dir klar werden, das ...

Es heißt "daß" oder für Schweizer "dass".

Und dir sollte auch mal klar werden, daß man bei Kenntnis der 
zugrundeliegenden Algorithmen auch mal schnell Delphi oder Lazarus 
installieren kann und dort ohne jegliches Codeblocks seine 
Simulationsergebnisse/GameOfLife-Verläufe sogar grafisch darstellen 
kann, ohne sich hilflos die Haare zu raufen über irgendwelche 
Fehlermeldungen, die man sogar lesen kann ("undefined reference to 
al_install_system"). Das hängt nicht an der verwendeten 
Programmierspache, sondern an der generellen Herangehensweise. Wer wie 
du zuvörderst Zeugs zusammeklickt, der braucht sich nicht zu wundern, 
wenn es mal hakelt.

W.S.

von Johannes S. (Gast)


Lesenswert?

Klar, sobald eine Fehlermeldung erscheint wechselt man die 
Programmiersprache und die Entwicklungsumgebung. Spitzentipp.

von J. T. (chaoskind)


Lesenswert?

W.S. schrieb:
> Und dir sollte auch mal klar werden,

Dann werd du dir darüber klar, dass es meine Sache ist, wie ich vorgehe. 
In diesem Thread geht es darum, Allegro mit Codeblocks zum laufen zu 
kriegen. Nun überlege dir, wie groß die Deckungsgleichheit zwischen 
"Allegro + CodeBlocks" und "mach doch make" ist. Wenn du dann zu dem 
Schluss kommst, es gibt keine, kannst du dann ja aufhören Tipps in diese 
Richtung zu geben.  Sie sind in diesem Thread unerwünscht. Sollte in ein 
paar Wochen meine Geduld ausgereizt sein, dann werde ich es mir evtl 
noch einmal anders überlegen und dann evtl nen Thread a la "wie geht 
make aufmachen". Da wird deine Expertise dann gefragt und erwünscht 
sein.

Johannes S. schrieb:
> Klar, sobald eine Fehlermeldung erscheint wechselt man die
> Programmiersprache und die Entwicklungsumgebung. Spitzentipp.

Mein Reden.

von Rolf M. (rmagnus)


Lesenswert?

J. T. schrieb:
> W.S. schrieb:
>> Und dir sollte auch mal klar werden,
>
> Dann werd du dir darüber klar, dass es meine Sache ist, wie ich vorgehe.

Keiner will dir vorschreiben, wie du es machst, aber man wird dir doch 
wohl Tipps geben dürfen. Natürlich steht dir auch frei, die zu 
ignorieren.
Aber du wolltest auch wissen, warum "das immer so ein Krampf" ist. Der 
Grund ist, weil durch die IDE der Compiliervorgang für dich mehr oder 
weniger eine Black Box ist.

> Wenn du dann zu dem Schluss kommst, es gibt keine, kannst du dann ja
> aufhören Tipps in diese Richtung zu geben.  Sie sind in diesem Thread
> unerwünscht.

Du wünschst dir die nicht. Du hast zwar den Thread gestartet, aber das 
heißt nicht, dass du die volle Hoheit darüber hast zu bestimmen, was 
andere hier schreiben.

J. T. schrieb:
> Johannes S. schrieb:
>> Klar, sobald eine Fehlermeldung erscheint wechselt man die
>> Programmiersprache und die Entwicklungsumgebung. Spitzentipp.
>
> Mein Reden.

Aber das ist doch genau das, was du getan hast. Es ging in Code:Blocks 
nicht, also hast du halt Dev-C++ genommen. Damit kommst du nicht klar, 
also doch wieder zurück.

W.S. schrieb:
> J. T. schrieb:
>> Dann sollte auch dir klar werden, das ...
>
> Es heißt "daß" oder für Schweizer "dass".

Auch für Deutsche heißt es schon seit über 20 Jahren "dass".

von J. T. (chaoskind)


Lesenswert?

Rolf M. schrieb:
> Keiner will dir vorschreiben, wie du es machst, aber man wird dir doch
> wohl Tipps geben dürfen.

Wird man sicher,

Rolf M. schrieb:
> Aber du wolltest auch wissen, warum "das immer so ein Krampf" ist. Der
> Grund ist, weil durch die IDE der Compiliervorgang für dich mehr oder
> weniger eine Black Box ist.

aber hauptsächlich möchte ich einfach wissen, wie man die BlackBox dazu 
bringt, zu laufen. Dazu kann halt jemand, der Compilieren per Console 
bevorzugt und von CodeBlocks soviel Schimmer hat, wie ich vom anderen, 
nicht viel beitragen.

Rolf M. schrieb:
> Du wünschst dir die nicht. Du hast zwar den Thread gestartet, aber das
> heißt nicht, dass du die volle Hoheit darüber hast zu bestimmen, was
> andere hier schreiben.

Selbstverständlich kann ich niemandem vorschreiben, was er wann, wie, wo 
und warum schreibt. Aber in einem Thread den ich starte, werde ich wohl 
meine Wünsche äussern dürfen, und in der REM-Phase davon träumen, dass 
diese Wünsche sogar respektiert werden?

Rolf M. schrieb:
> Aber das ist doch genau das, was du getan hast. Es ging in Code:Blocks
> nicht, also hast du halt Dev-C++ genommen. Damit kommst du nicht klar,
> also doch wieder zurück.

Und da sich dieses Vorgehen als nicht zielführend herausgestellt hat, 
kann ich aus tiefster Seele bestätigen, dass es sich hierbei um einen 
"Spitzentipp" handelt ;-)

Rolf M. schrieb:
> W.S. schrieb:
>> J. T. schrieb:
>>> Dann sollte auch dir klar werden, das ...
>>
>> Es heißt "daß" oder für Schweizer "dass".
>
> Auch für Deutsche heißt es schon seit über 20 Jahren "dass".

Wer mit Rechtschreibfehlern als "Argumenten" um sich wirft, ist doch eh 
keines Kommentares würdig.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.