allegro.h, Problem



  • Hi,

    ich habe die Bibliothel Allegro eingebunden,
    trotzdem kann ich keine Anwendung damit erstellen.

    #include <allegro.h>
    
    int main(int argc, char **argv) {
        allegro_init();
        allegro_message("Hallo Welt!");
    } END_OF_MAIN();
    

    Wenn ich das compiliere kommen folgende Fehlermeldungen.

    [Linker error] undefined reference to \_install\_allegro\_version\_check' [Linker error] undefined reference toallegro_message'
    [Linker error] undefined reference to `_WinMain'

    Kann mir da jemand helfen?
    Dieses Codebeispiel ist aus dem Buch "Spieleprogrammierung"
    von Lennart Steinke

    mfg,
    Blackbox



  • Du hast irgendwelche libs falsch gelinkt. Schau nochmal nach, ob du das richtig gemacht hast.



  • Hallo,

    ich habe mir auch das Buch Spieleprogrammierung von Lennart Steinke gekauft und scheitere schon beim Einbinden der Allegro Bibliothek. Ich habe die Datei Al422 auf meinen Rechner von der CD gezogen und in einem Verzeichnis entpackt. Nun stellt sich bei mir die Frage, wie ich Allegro nun in meine Visual C++ Version 2008 Express Edition einbinden kann.

    Kann mir da jemand weiter helfen? Ich bin totaler Anfänger mit der Programmierung und habe mich bis jetzt lediglich mit Konsolenanwendungen beschäftigt.

    mfg Stefan



  • Was is'n das fuer'n Buch in dem nichtmal beschrieben ist, wie man die Beispiele zum Laufen kriegt?...

    Hab "leider" nur'n englisches Visual Studio:
    Im Menue "Project" den Punkt "Properties" auswaehlen.
    Im linken Baum "Linker" aufklappen und "Input" auswaehlen.
    Rechts unter "additional Dependencies" die Namen der benoetigten Libs eintragen.
    Ggf im drueberliegenden Koten "General" den Pfad dorthin bei "additional Library Directories" eintragen.
    Im deutschen VS funktioniert's genauso nur die Bezeichnungen sind tuckiger.



  • die deutsche version kannst du unter chip.de downloaden. ich probiere das gleich mal mit dem einbinden



  • fatal error C1083: Datei (Include) kann nicht geöffnet werden: "allegro": No such file or directory

    habe versucht das wie beschrieben einzubinden. klappt leider irgendwie nicht.

    geht es vieleicht noch ideotensicherer?

    mfg stefan



  • Dann trag noch den Pfad zu den Allegro-Headern in den Projekteigenschaften unter C/C++ -> General: "Additional Include Directories" ein.



  • ich habe jetzt das oberverzeichnis namens allegro eingetragen.

    dann habe ich ein projekt erstellt und einfach

    #include <allegro>

    eingegeben und kompiliert.

    Kompilierbericht sagt folgendes:

    1>Kompilieren...
    1>test12.cpp
    1>c:\users\stefan weber\documents\visual studio 2008\projects\test12\test12\test12.cpp(5) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "allegro": No such file or directory
    1>Das Buildprotokoll wurde unter "file://c:\Users\Stefan Weber\Documents\Visual Studio 2008\Projects\test12\test12\Debug\BuildLog.htm" gespeichert.
    1>test12 - 1 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    ich weiß einfach nicht, wie ich das einbinden kann

    mfg stefan



  • Die Header befinden sich im Unterverzeichnis /include, die Libs im Unterverzeichnis /lib und besagtes Headerfile heisst allegro.h.



  • unter allgemeine Eigenschaften (General) habe ich jetzt unten rechts den verweissuchpfad hinzugefügt: ..\..\..\..\..\..\..\Allegro\allegro\include

    unter Konfigurationseigenschaften habe ich unter Linker/Eingabe (Input) oben unter zusätzliche Abhängigkeiten: allegro.h eingetragen

    nach dem compilieren wir der oben gezeigte fehler immernoch geschrieben

    mfg stefan



  • muss ich dieses DirectX SDK noch downloaden, damit es läuft?



  • Wie wärs mit:

    #include "/usr/include/allegro.h"
    // oder win
    #include "c:\allegro\include\allegro.h"
    

    Edit: Wobei man damit auf anderen Systemen voraussetzt, daß die Header in der selbigen Verzeichnisstruktur liegen. Zu Testzwecken und bis gelernt hast wie man Bibliotheken und Header einbindet sollte es reichen.



  • btw schau mal hier. evtl findest du was...

    EDIT:
    Zitat: "Für den MSVC wrappt Allegro DirectX, arbeitet aber auch mit dem GDI. Teile
    des DirectX-SDK sind jedoch vonnöten. "



  • // test123.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //

    #include "stdafx.h"
    #include "c:\allegro\allegro\include\allegro.h"

    int _tmain(int argc, _TCHAR* argv[])
    {
    return 0;
    }

    1>c:\allegro\allegro\include\allegro\fixed.h(21) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "stdint.h": No such file or directory

    jetzt soll stdint.h geöffnet werden. diese datei gibs aber leider nicht in meinem allegro verzeichnis. HILFE!! ich verzweifle langsam vor meinem rechner



  • stefan-84 schrieb:

    jetzt soll stdint.h geöffnet werden. diese datei gibs aber leider nicht in meinem allegro verzeichnis.

    Eine stdint.h ist zumindest bei mir in meinem Standard-Header Verzeichnis.
    Durchsuch mal dein Dateisystem nach dem Header und gib dieses Verzeichnis in deiner Entwicklungsumgebung ein. (sowas wie Projekteinstellungen->verzeichnisse->include)

    Allgemein: Benutze Bitte die C++ Code-Tags wenn Du code-snippets postest.

    // deutlich lesbarer für alle
    

    Edit: konnte Dir der Link helfen?



  • ich komme irgendwie mit dem einbinden von allegro nicht klar, grüble nun schon den 3. tag daran. jedes mal habe ich nen anderen fehler.

    kann mir jemand die vorgehensweise bitte ideotensicher schritt für schritt erklären?

    ich habe visual c++ express edition 2008 in deutscher version.

    DirecktX SDK habe ich installiet.

    ich habe die datei all422 von allegro gedownloaded und in einen ordner namens allegro entpackt. ab diesen punkt komme ich leider nicht weiter.

    ich hoffe, dass mir jemand da behilflich sein kann.

    mfg stefan



  • Schritt 1:
    In den Ordner "allegro\build" wechseln und 'pre-build-msvc.bat' ausfuehren.
    In den Ordner "allegro\build\msvc8" wechseln und das Projekt 'Allegro.sln' oeffnen, auf 'Release' stellen und uebersetzen.
    Falls dinput.lib fehlt, dx70_min.zip von hier hernehmen, die Datei im Ordner "allegro\build\msvc8\Allegro" ablegen und nochmal uebersetzen.

    Schritt2:
    Ggf im Ordner "allegro\build\msvc8\examples" wiederum dinput.lib ablegen.
    Im Ordner "allegro\build\msvc8" das Projekt 'examples.sln' oeffnen und uebersetzen.
    Im Ordner "allegro\examples" befinden sich nun die resultierenden Binaries.

    Schritt3:
    Aus dem Ordner "allegro\lib\msvc" die Datei 'alleg42.dll' in den Ordner "allegro\examples" kopieren und die Beispiele angucken.



  • habe auf release gestellt und compiliert

    es kommt die fehlermeldung, dass "stdint.h" fehlt.

    wo bekomme ich die her?

    mfg stefan



  • stefan-84 schrieb:

    wo bekomme ich die her?

    Hier steht: "stdint.h is a header file in the C standard library introduced in the C99 standard library section ".

    Solltest Du Sie tatsächlich nirgendwo finden, wird in dem Artikel beschrieben, daß man Sie sich selbst erstellen kann.

    Zitat:"Both C and C++ developers should know that it is important to update their coding standards even if the compiler is not C99 compliant because a version of stdint.h (for C), and a version of stdint.h and cstdint (for C++) can be downloaded or quickly created."

    In diesem Forum spricht einer davon daß MinGW den Header mitliefert.
    Schmeiß doch einfach mal google an.

    EDIT: Aber ich hoffe, daß Du zuerst dein Dateisystem nach "stdint.h" durchsucht hast 😉



  • Interessant: "It is astonishing to find that a header that was standardized 9 years ago has still not made its way into Visual Studio 2008. Not even the recent feature pack beta which included support for most of the TR1 extensions, contained stdint.h! The lack of support for this header was logged as a bug with Microsoft way back in 2005 but is still in the "postponed" bucket." Quelle

    Dazu ebenfalls ein Link zu selbsterstellten stdint.h


Anmelden zum Antworten