allegro.h, Problem



  • 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



  • XHansWurstX schrieb:

    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

    ach, da haben die von microsoft vergessen bei der msvc version 2008 den header stdint.h in die library einzubinden. deshalb wurde die nie gefunden. ich werde sie mal versuchen von dem link oben zu bekommen und sie in die standard library einbinden. hoffe, dass das mein problem behebt.

    ich werde mich am montag wieder melden, ob es geklappt hat, weil ich am wochenende keine zeit für den rechner habe. vielen dank

    mfg stefan



  • ich habe jetzt eine neue headerdatei namens stdint.h angelegt und unter include im VC ordner von visual studio 2008 abgelegt. den quelltext habe ich von dieser seite kopiert.
    http://msinttypes.googlecode.com/svn/trunk/stdint.h

    wenn ich nun allegro.sln ausführe öffnet sich die programmierumgebung.
    ich stelle oben neben dem grünen pfeil auf release und starte das debugging.

    dann kommen über 2000 Zeilen nur fehlermeldungen.

    z.b. die ersten fehler

    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(69) : error C2632: 'char' gefolgt von 'char' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(70) : error C2632: 'short' gefolgt von 'short' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(71) : error C2632: 'int' gefolgt von 'int' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(72) : error C2632: '__int64' gefolgt von '__int64' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(73) : warning C4114: Der gleiche Typbezeichner wurde mehrmals verwendet
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(73) : error C2632: 'char' gefolgt von 'char' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(74) : warning C4114: Der gleiche Typbezeichner wurde mehrmals verwendet
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(74) : error C2632: 'short' gefolgt von 'short' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(75) : warning C4114: Der gleiche Typbezeichner wurde mehrmals verwendet
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(75) : error C2632: 'int' gefolgt von 'int' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(76) : warning C4114: Der gleiche Typbezeichner wurde mehrmals verwendet
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(76) : error C2632: '__int64' gefolgt von '__int64' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(103) : error C2632: 'int' gefolgt von 'int' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(104) : warning C4114: Der gleiche Typbezeichner wurde mehrmals verwendet
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(104) : error C2632: 'int' gefolgt von 'int' ist unzulässig
    1>wtimer.c
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(69) : error C2632: 'char' gefolgt von 'char' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(70) : error C2632: 'short' gefolgt von 'short' ist unzulässig
    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(71) : error C2632: 'int' gefolgt von 'int' ist unzulässig
    


  • stefan-84 schrieb:

    1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdint.h(69) : error C2632: 'char' gefolgt von 'char' ist unzulässig
    

    Der Fehler muß woanders liegen. In der von Dir angegebenen Datei gibt es in Zeile 69 gar kein "char".

    cat stdint | grep -in 'char'
    46:// For Visual Studio 6 in C++ mode wrap <wchar.h> include with 'extern "C++" {}'
    52:#     include <wchar.h>
    196:// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
    197:#ifndef WCHAR_MIN // [
    198:#  define WCHAR_MIN  0
    199:#endif  // WCHAR_MIN ]
    200:#ifndef WCHAR_MAX // [
    201:#  define WCHAR_MAX  _UI16_MAX
    202:#endif  // WCHAR_MAX ]
    

    EDIT: Genaugenommen kommt 'char' alleine garnicht vor...
    EDIT 2:
    Das ist Zeile 69 😉

    69:  // 7.18.1.1 Exact-width integer types
    


  • kannst du mir vieleicht eine andere Version von C++ empfehlen, mit der man besser klar kommt. sie sollte im netz als freeware zu downloaden sein.

    mfg stefan



  • stefan-84 schrieb:

    kannst du mir vieleicht eine andere Version von C++ empfehlen, mit der man besser klar kommt. sie sollte im netz als freeware zu downloaden sein.

    EDIT: mit "andere Version" meinst Du hoffentlich die Entwicklungsumgebung (bei Dir VisualStudio).

    Ich würde Dir Code::Blocks empfehlen.
    Evtl brauchst Du dafür noch einen Compiler. MinGW wird da oft empfohlen.

    Ansonsten empfehlen viele Eclipse. Wobei Eclipse eigentlich eine Java-Entwicklungsumgebung ist, welche jedoch mit PlugIns auch C++ Kompilieren kann.



  • kannst du mir vieleicht eine andere Version von C++ empfehlen, mit der man besser klar kommt.

    Ich habe Visual Studio 2008 Express German (von hier) installiert, die Include- & Library-Pfade zum DirectX-SDK (June 2008) eingefuegt und damit die Allegro (4.22 von hier) DLL und die beiliegenden Beispiele ohne Fehler kompiliert.
    Deutlich einfacher wird's wohl mit einer anderen Entwicklungsumgebung auch nicht gehen.


Anmelden zum Antworten