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) :
- Je télécharge Irrlicht SDK 1.7 depuis la page de téléchargement d'Irrlicht
- Je récupère depuis les sources SVN avec svn checkout https://irrlicht.svn.sourceforge.net...irrlicht/trunk irrlicht
- 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 :
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) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cast from void* to GLuint loses precision
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 :
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
Partager