Installation de Irrlicht SDK 1.7 pour MacOSX SL (sans utiliser Xcode)
Bonjour tout le monde,
Voilà, depuis hier je tente de compiler la version 1.7 du SDK pour mon Mac.
Je possède un Mac OSX sous 10.6.3
version de gcc : 4.2.1 (Apple Inc. build 5659)
Voilà ma démarche actuelle :
- Soit (cela revient au même) :
- J'obtiens un dossier contentant sources, exemples, bin, lib, includes.
- Je vais dans source/Irrlicht/MacOSX/ et j'ouvre le fichier MaxOSC.xcodeproj, Xcode se lance.
- Dans le panneau Groups & Files, je fais Get Info sur Targets->libIrrlicht.a.
- Dans l'onglet Build de l'inspecteur, je choisis Standard (32/64-bit Universal) pour Architectures et Current MacOSX pour Base SDK, puis je ferme l'inspecteur.
- Dans la sélection Overview de la fenetre du projet, je sélectionne Release et x86_64. Normalement les autres options sont déjà sur les bonnes valeurs, mais au cas où : Active SDK->Use Base SDK et Active Target->libIrrlicht.a.
- Je lance la compilation. La je me pose souvent la question. Des fois j'ai plus de 300 sources à compiler, des fois plus de 600, mais là alors que j'en parle, y'en a plus de 900. Pourtant à chaque fois que j'essaie je nettoie bien tout, ... bref. Durant la compilation 4 erreurs s'affichent. Toutes la même et dans le même fichier :
Code:
Cast from void* to GLuint loses precision
GLuint est juste un unsigned int, alors je suppose qu'en 64bits, un unsigned int ne tient pas dans 64 bits alors qu'un void* si, et du coup on perd des données. Sans aller trop loin, j'ai modifié directement le code aux quatres lignes en question. Voici l'une d'elles (les autres sont les même quasiment) :
Citation:
fichier COpenGLSLMaterialRenderer.cpp
Driver->extGlProgramParameteri((GLUint)Program, GL_GEO......
Program est de type void* je fais juste :
Driver->extGlProgramParameteri((long GLUint)Program, GL_GEO......
- Je reprend la compilation. Cette fois ça fonctionne, mais comme avant on s'accompagne de moult warnings concernant des fonctions appelées qui sont notées deprecated.
- Une fois la compilation terminée, j'obtiens le fichier libIrrlicht.a que je met dans /usr/local/lib/ et j'en profite pour balancer l'ensemble des .h fournis avec le SDK dans /usr/local/include/irrlicht.
- Maintenant je passe au test. Je vais en terminal dans le dossier contenant le premier exemple d'Irrlicht. Je modifie le main.cpp pour que #include <irrlicht> deviennt #include <irrlicht/irrlicht>. Puis je lance make
Et là j'obtient une liste de warning et d'erreur, la liste est trop longue aussi voici un lien : http://www.filehosting.org/file/deta...Homj01/irr.txt
Pour ne pas vous obliger à prendre le lien, voici un extrait de quelques erreurs :
Citation:
ld: warning: irr::core::irrAllocator<char>::internal_delete(void*)has different visibility (hidden) in /usr/local/lib/libIrrlicht.a(Irrlicht.o) and (default) in /var/folders/Jr/JrnnXqDVHNWUQsqR-6APyk+++TI/-Tmp-//ccICRujH.o
ld: warning: irr::core::irrAllocator<char>::internal_new(unsigned long)has different visibility (hidden) in /usr/local/lib/libIrrlicht.a(CIrrDeviceStub.o) and (default) in /var/folders/Jr/JrnnXqDVHNWUQsqR-6APyk+++TI/-Tmp-//ccICRujH.o
ld: warning: vtable for irr::core::irrAllocator<char>has different visibility (hidden) in /usr/local/lib/libIrrlicht.a(CIrrDeviceStub.o) and (default) in /var/folders/Jr/JrnnXqDVHNWUQsqR-6APyk+++TI/-Tmp-//ccICRujH.o
Undefined symbols:
"_NSDefaultRunLoopMode", referenced from:
irr::CIrrDeviceMacOSX::run() in libIrrlicht.a(CIrrDeviceMacOSX.o)
"_OBJC_CLASS_$_NSEvent", referenced from:
objc-class-ref-to-NSEvent in libIrrlicht.a(CIrrDeviceMacOSX.o)
"_CGDisplayHideCursor", referenced from:
irr::CIrrDeviceMacOSX::setCursorVisible(bool) in libIrrlicht.a(CIrrDeviceMacOSX.o)
irr::CIrrDeviceMacOSX::CCursorControl::setVisible(bool) in libIrrlicht.a(CIrrDeviceMacOSX.o)
"_CGDisplayPixelsWide", referenced from:
irr::CIrrDeviceMacOSX::createWindow() in libIrrlicht.a(CIrrDeviceMacOSX.o)
Donc voilà, impossible d'utiliser Irrlicht sur ma machine.J'aimerais savoir pourquoi, ça c'est le step-by-step de ce que j'ai fait après plusieurs essais dans un sens, ou dans l'autre, pour en arriver là.
Si quelqun a déjà eu le soucis, ou sait comment régler, merci de m'aider :)
Bonne journée,
Oragon