J’ai pas mal galéré pour compiler un simple hello world avec Ogre sous Ubuntu. Je code avec vim, donc j’aime bien utiliser cmake pour configurer a compilation.
Je n’ai jamais fait de programmes en 3D jusqu’à présent et je compte justement m’y mettre. Une des raisons qui m’a poussé vers Ogre est son utilisation massive de CMake pour la compilation, ce qui me simplifie pas mal la vie (par rapport à Irrlicht par exemple qui semble plus compliqué pour compiler).
Ici je vais décrire comment installer Ogre sous Ubuntu Karmic, puis comment compiler le hello world du tuto officiel
Installer Ogre 1.7
Il y a un paquet ppa qui a été créé spécialement pour ça, donc toutes les méthodes indiquant comment compiler que l’on voit un peu partout ne sont pas nécessaires. Ce PPA ne risque pas de causer de soucis au système, puisqu’il ne contient que Ogre.
Ajoutez au fichier /etc/apt/sources.list
deb http://ppa.launchpad.net/ogre-team/ogre/ubuntu karmic main deb-src http://ppa.launchpad.net/ogre-team/ogre/ubuntu karmic main
Puis lancez ajoutez les clés GPG, et mettez à jour la liste des paquets
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B4CFE229 sudo apt-get update
Installez ensuite le paquet libogre-dev
sudo apt-get install libogre-dev ogre-samples-bin ogre-samples-source libois-dev
Le paquet ogre-samples-source qui permet d’avoir quelques exemples de programmes, ainsi que de profiter de pouvoir suivre le tutoriel officiel (qui utilise quelques headers définis ici).
Compilation avec cmake
Les fichiers permettant de rechercher Ogre (FindOGRE.cmake) ne sont pas à la place habituelle de cmake, il faudra donc lui indiquer où les trouver dans le CMakeList
Pour tester, on va essayer de compiler le fichier d’exemple du tutoriel 1, le fichier en question est le suivant
#include "ExampleApplication.h"
class TutorialApplication : public ExampleApplication
{
protected:
public:
TutorialApplication()
{
}
~TutorialApplication()
{
}
protected:
void createScene(void)
{
}
};
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char **argv)
#endif
{
// Create application object
TutorialApplication app;
try {
app.go();
} catch( Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.what(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
fprintf(stderr, "An exception has occurred: %s\n",
e.what());
#endif
}
return 0;
}
Créez un fichier CMakeLists.txt, contenant quelque chose comme
project(helloworld)
cmake_minimum_required(VERSION 2.6)
set(CMAKE_MODULE_PATH "/usr/lib/OGRE/cmake/")
#set(CMAKE_CXX_FLAGS "-Wall -W -Werror -ansi -pedantic -g")
# Il s'agit du tutoriel d'exemple, qui utilise quelques fichiers prédéfini de Ogre. Il faut indiquer à cmake où se trouvent les includes en question
include_directories ("/usr/share/OGRE/Samples/Common/include/")
# Bien sur, pour compiler Ogre, il faut le chercher, et définir le répertoire contenant les includes.
find_package(OGRE REQUIRED)
include_directories (${OGRE_INCLUDE_DIRS})
# L'exemple dépend aussi de OIS, une lib pour gérer la souris, clavier, joystick...
find_package(OIS REQUIRED)
# On définit les sources qu'on veut compiler
SET(SOURCES
helloworld.cpp)
# On les compile
add_executable (
helloworld ${SOURCES}
)
# Et pour finir, on lie l'exécutable avec les librairies que find_package nous a gentillement trouvé.
target_link_libraries(helloworld ${OGRE_LIBRARY} ${OIS_LIBRARY})
Pour en savoir plus sur cmake, regardez cet article
Cmake n’est pas installé par défaut, vous pouvez l’installer avec
sudo apt-get install cmake
Il ne reste plus qu’à tester :
cmake . make
Normallement, un programme « helloworld » devrait s’être créé sans souci, sinon c’est qu’il y a un problème, regardez si vous avez bien suivi les étapes précédentes.
Si vous lancez tel quel l’exécutable il ne fonctionnera pas (enfin il affichera une erreur comme quoi il manque des fichiers). On va donc les récupérer depuis le répertoire de OGRE avant de lancer le programme :
cp /usr/share/OGRE/resources.cfg . cp /usr/share/OGRE/plugins.cfg . ./helloworld
Normallement une fenêtre s’ouvre, c’est que c’est bon

Commentaires récents