Aller au menu - Aller au contenu

Icône Recompiler Irrlicht

Avatar
Mise à jour : 23/03/2011
Difficulté : Facile Facile Creative Commons BY-SA
1 621 visites depuis 7 jours, dont 24 sur ce chapitre classé 80/786
Comme l'indique le titre de ce chapitre nous allons y voir comment recompiler le moteur. Ce qui signifie que l'intégralité du code source passera à la moulinette, soit un bon paquet de fichiers. Généralement on évite de faire cette manipulation car elle prend beaucoup de temps et peut planter pour mille et une raisons. Mais il y a tout de même plusieurs bon motifs qui peuvent pousser à vouloir recompiler le moteur :
  • Vous êtes sous gnu/linux et il n'y a pas de bibliothèque statique livrée avec le SDK...
  • Vous voulez changer quelque chose dans le code source.
  • Vous êtes curieux (et c'est bien :) )
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Sous Windows

Les méthodes décrites ci-après permettent de recompiler le moteur pour qu'il puisse utiliser OpenGL, pas DirectX. Pour ce faire jetez un oeil au wiki officiel.


Pour faire tourner Irrlicht sous Windows, on a besoin de :
  • les headers (.h)
  • la bibliothèque statique (.lib)
  • la bibliothèque dynamique (.dll)

A moins que vous n'y ayez touché, les headers restent les mêmes. En revanche la compilation du moteur va nous fournir des nouvelles bibliothèques statique et dynamique. La suite des événements va dépendre de l'IDE que vous utilisez.



Code::Blocks


La procédure est simple comme bonjour : ouvrez le SDK, allez dans le dossier 'source', puis le dossier 'Irrlicht', et cherchez-y le fichier Irrlicht2-gcc.cbp. Il s'agit d'un fichier projet que vous pouvez ouvrir avec code::blocks. Faîtes le, lancez la compilation, et allez vous chercher un jus de fruit en attendant que ce soit terminé. :)

Une fois que c'est le cas vous pouvez récupérer la bibliothèque statique dans le dossier SDK/lib/, et la bibliothèque dynamique dans le dossier SDK/bin/.



DEV C++


C'est tout aussi simple avec DEV C++. Dans le même dossier se trouve un fichier Irrlicht.dev qu'il vous suffit d'ouvrir pour avoir le projet prêt à être compilé. Une fois que c'est fait vous pouvez récupérer les bibliothèques aux mêmes emplacements que pour Code::Blocks.



Visual C++


La démarche est identique pour Visual C++. Toujours dans le même dossier se trouve un fichier "Irrlicht9.0.vcproj" contenant le projet prêt à être compilé. Une fois que c'est fait vous pouvez récupérer les bibliothèques aux mêmes emplacements que pour Code::Blocks.

Sous GNU/Linux

Pour faire tourner Irrlicht sous GNU/Linux on a besoin de :
  • les headers (.h)
  • la bibliothèque statique (.a)

A moins que vous n'y ayez touché, les headers restent les mêmes. En revanche la compilation du moteur va nous fournir une nouvelle bibliothèque statique. Pour ce faire, placez-vous dans le dossier SDK/source/Irrlicht/. Celui-ci contient un makefile, qu'il ne nous reste plus qu'à lancer :

Code : Console
user@machine:???/SDK/source/Irrlicht$ make
(Le path dans l'invite de commande est évidemment faux)


Par défaut le makefile va compiler le moteur en mode debug. Pour de meilleurs performances utilisez plutôt la commande suivante qui va compiler le moteur en mode release :

Code : Console
user@machinename:???/SDK/source/Irrlicht$ make NDEBUG=1



Et c'est là que les choses se compliquent. Selon toute vraisemblance le compilateur va vous renvoyer moult erreurs dues à des paquets manquants. En effet Irrlicht à besoin de beaucoup de choses pour être compilé. Voici par exemple la liste des paquets nécessaires à la compilation du moteur sous Ubuntu (directement tirée du wiki officiel) :
  • build-essential
  • xserver-xorg-dev
  • x11proto-xf86vidmode-dev
  • libxxf86vm-dev
  • mesa-common-dev
  • libgl1-mesa-dev
  • libglu1-mesa-dev

Malheureusement je n'ai la liste que pour cette distribution. Je sais par expérience qu'elle est sensiblement identique sous Debian. Pour les autres, il faut regarder les messages d'erreurs renvoyés par le compilateur et trouver les packages manquant en fonction. Néanmoins, même si les noms des paquets changent leurs fonctions devraient rester les mêmes que ceux d'au dessus.

Une fois la compilation terminée, vous pouvez récupérer la bibliothèque statique dans le dossier SDK/lib/Linux/.
Vous aurez remarqué que la liste des cas de figure n'est pas exhaustive, et ce pour des raisons matérielles évidentes. Je n'ai ni le temps ni les moyens de tester la compilation du moteur sur toutes les plateformes existantes. Il se peut donc que votre configuration ne figure pas dans ce chapitre. Si c'est le cas et que vous avez envie d'aider ce tuto, vous pouvez m'envoyer la démarche que vous avez suivie et je l'intégrerais à ce chapitre. :)
Chapitre précédent Sommaire Chapitre suivant

Partager

5 commentaires pour "Recompiler Irrlicht"
Note moyenne : 3.60 / 4 (122 votes)
Pseudo Commentaire
Hors ligne Spiky.88 # Posté le 15/09/2007 à 19:12:41
Hello World !
Avatar

Études : Université Versailles Saint Quentin

Juste pour signaler un oublie ( erreur ?) quand a la compilation de irrlicht sous ubuntu, en faite il faut taper Code : Autre - Afficher / masquer les numéros de ligne
  1. make NDEBUG=1
pour avoir le fichier "libirrlicht.a" sous le dossier lib/Linux, la commande Code : Autre - Afficher / masquer les numéros de ligne
  1. make Makefile
ne compile que la version debug de la librairie.
Hors ligne Kevin Leonhart # Posté le 15/09/2007 à 19:36:20
Monde de merde
Avatar

Ah en effet.
Merci bien, ce sera corrigé dès la prochaine mise à jour. :)

tuto_csoundcypherImage utilisateurthe_machinistdanger_daysle_coeur_a_ses_raisonsghost_in_the_shellinternet_is_shitplay_asia
 
Hors ligne aitina # Posté le 10/03/2009 à 13:17:06

Bonjour Tout Le Monde


Je vous remercie du tutorial sur Irrlicht.

Dans Irrlicht,dans le dossier "exemple",nous avons un exemple qui affiche un fichier .bsp qui provient d'un .pk3 :)

Est il possible de charger un fichier.pk4? :(

L'objectif etant de charger dans un programme un decor de quake 4.

Sur ce site nous avons aussi un tutorial pour editer les maps sous quake 4,avez vous des liens pour pouvoir progresser?

Je vous remercie et encore bravo pour ce site dont les tutoriaus sont tres bien ecrits et surtout que les programmes fonctionnent.

Avez vous une rubrique sur XNA 3.0?

Cordialement
Hors ligne smilz # Posté le 03/09/2009 à 22:46:42
La vie est une blague
Avatar
Flux RSS

Il semblerait qu'il y ait des difficulté sous linux dû aux système 64bits, y a-t-il une solution ? Vu les erreurs, j'ai bien peur que non :
Code : Autre
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CIrrDeviceLinux.cpp: In destructor ‘virtual irr::CIrrDeviceLinux::~CIrrDeviceLinux()’:
CIrrDeviceLinux.cpp:142: erreur: ‘oldVideoMode’ was not declared in this scope
CIrrDeviceLinux.cpp:142: erreur: ‘XF86VidModeSwitchToMode’ was not declared in this scope
CIrrDeviceLinux.cpp:143: erreur: ‘XF86VidModeSetViewPort’ was not declared in this scope
CIrrDeviceLinux.cpp: In member function ‘bool irr::CIrrDeviceLinux::createWindow()’:
CIrrDeviceLinux.cpp:222: erreur: ‘XF86VidModeQueryExtension’ was not declared in this scope
CIrrDeviceLinux.cpp:226: erreur: ‘XF86VidModeModeInfo’ was not declared in this scope
CIrrDeviceLinux.cpp:226: erreur: ‘modes’ was not declared in this scope
CIrrDeviceLinux.cpp:228: erreur: ‘XF86VidModeGetAllModeLines’ was not declared in this scope
CIrrDeviceLinux.cpp:245: erreur: ‘XF86VidModeSwitchToMode’ was not declared in this scope
CIrrDeviceLinux.cpp:246: erreur: ‘XF86VidModeSetViewPort’ was not declared in this scope
CIrrDeviceLinux.cpp: In member function ‘virtual irr::video::IVideoModeList* irr::CIrrDeviceLinux::getVideoModeList()’:
CIrrDeviceLinux.cpp:1089: erreur: ‘XF86VidModeQueryExtension’ was not declared in this scope
CIrrDeviceLinux.cpp:1093: erreur: ‘XF86VidModeModeInfo’ was not declared in this scope
CIrrDeviceLinux.cpp:1093: erreur: ‘modes’ was not declared in this scope
CIrrDeviceLinux.cpp:1095: erreur: ‘XF86VidModeGetAllModeLines’ was not declared in this scope
CIrrDeviceLinux.cpp:1098: erreur: ‘oldVideoMode’ was not declared in this scope


Oups j'avais pas vu la partie sur les paquets mea culpa.

Cependant je link moi même mes librairies et tu oublies quelque chose de très important pour le linkage, il ne suffit pas de faire -lIrrlicht mais -lXxf86vm -lXext -lX11 -lGL -lGLU -lIrrlicht sous linux.
Hors ligne chichiri # Posté le 21/04/2011 à 17:44:02
Viva Lasagna
Avatar

Avis : Très bon

C'est clair que c'est très intéressant de pourvoir recompiler le moteur, d'autant plus que dans ton tuto, tu explique que se référer aux sources est important mais je tenais à signaler que dans le gestionnaire de paquet d'ubuntu il y avait un paquet linux tout prêt pour l'utilisation.

La violence est le dernier refuge de l'incompétence : ménager votre ordi! :p
Un programme ne marche pas.. il fonctionne. :p
Un problème sous Blender, référez-vous au Image utilisateur

Sessions photoréalistes du SDZ

Sessions speed modelling du SDZ

 

Voir tous les commentaires