Bonjour le monde !
J'aurais besoin de votre aide pour un probleme avec irrnewton .Je m'explique :
J'ai tout installé newton et irrnewton comme il fallait (je suis sous ubuntu gutsy gibbon) , mais quand je lance une compilation en incluant "IrrNewt.hpp" , le compilateur (le compilateur est gcc , j'utilise l'IDE codeblocks) me renvoie une erreur située dans utils.hpp à la ligne 168 sur ce fragment de code :
L'erreur exacte revoyée est :/usr/include/utils.hpp|168|erreur: extra qualification «irr::newton::IUtils::" on member «getPolysNewton"|
Je sais pas du tout quoi faire , là :[
Si quelqu'un a une solution , je suis toutoui
merci d'avance !
Hors ligne
J'suis pas spécialiste de GCC, mais vite fait et au vue du message que tu as, a chaud je modifierais le fichiers utils.hpp
en écrivant non pas:
mais plutôt
Essais, cela ne coute rien.
Hors ligne
Tmyke doit avoir raison.
Apparemment, cette erreur a été introduite dans la version 4.1 de gcc (http://www.fourmilab.ch/fourmilog/archi … 00699.html). Donc, soit tu enlèves tous les namespaces du fichier util.hpp (ce qui semble un peu fastidieux quand même), soit tu essaies avec une autre version de gcc.
Je te conseillerais plutôt la deuxième solution. Même si tu dois installer une version plus ancienne de gcc, au moins, tu seras sûr de ne plus rencontrer cette erreur par la suite.
Hors ligne
Merci bien à vous deux , ça fonctionne maintenant , avec l'astuce de Tmyke
Par contre j'ai un autre petit problême (plus simple à résoudre je pense) , j'espère que ça vient pas de gcc :
dans ce code :
#include <iostream> #include <irrlicht.h> #include <IrrNewt.hpp> using namespace std; using namespace irr; using namespace newton; int main() { //on crée le device IrrlichtDevice *device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(800,600), 32, false, true, false); //la graphe de scene scene::ISceneManager *scenegraph = device->getSceneManager(); //le driver video::IVideoDriver *driver = device->getVideoDriver(); //et maintenat le monde physique irr::newton::IWorld* world = createPhysicsWorld(device); //La camera FPS biensur scene::ICameraSceneNode *camera; camera = scenegraph->addCameraSceneNodeFPS(0); //La map de fond device->getFileSystem()->addZipFileArchive("map-20kdm2.pk3"); scene::IAnimatedMesh* meshMap = scenegraph->getMesh("20kdm2.bsp"); scene::ISceneNode* map = scenegraph->addOctTreeSceneNode(meshMap->getMesh(0));; map->setPosition(core::vector3df(-1300,-144,-1249)); //un cude scene::IAnimatedMesh *cubeMesh = scenegraph->getMesh("cube.3ds"); scene::ISceneNode *cube = scenegraph->addMeshSceneNode(cubeMesh->getMesh(0)); SBodyFromNode cubeData; cubeData.Mass = 10; cubeData.Node = cube; cubeData.Mesh = cubeMesh->getMesh(0); //IBody *cubeBody = world->createBody(cubeData); while(device->run()) { driver->beginScene(true, true, video::SColor(255,128,128,128)); scenegraph->drawAll(); world->update(); driver->endScene(); } device->drop(); return 0; }
Les erreurs sont :
/home/romain/arkanprojet/testsdiversetvaries/physique/main.cpp|21|undefined reference to `irr::newton::createPhysicsWorld(irr::IrrlichtDevice*)'|
/home/romain/arkanprojet/testsdiversetvaries/physique/main.cpp|53|undefined reference to `irr::newton::IWorld::update()'|
Grrr ...qu'est ce qu'il me veut , encore
Apparemment , cela veut dire que la classe n'a pas été déclarée ?Pourtant , j'ai bien fait un "#include <IrrNewton.hpp>" ...
comprend pas
remerci d'avance , et encore merci pour le premier problême
Hors ligne
Je dirais toujours des histoires de 'namespace' qui sont redondants dans les headers et que n'aime pas trop ta version de GCC,
pour rebondir sur ce que disait Perceval.
Hors ligne
J'ai essayé de changer la version de gcc (j'ai mis la 3.4.quequ'chose) , mais il me refet l'erreur , sans pour autant mettre en cause les fichiers d'include du moteur ...
bizarre ...
Vais essayer sur windows , mais bon ... :S
Hors ligne
Sous windows, cela fonctionne, j'ai refait un package pour la version 1.4.2 d'irrlicht, post ici: http://www.irrlicht.fr/forum/viewtopic.php?id=720
Hors ligne
Sous windows avec gcc , même erreurs .Et comme je ne compte pas installer le compilateur de microsoft , je vais essayer de rechanger la version de gcc .
Merci de votre aide
Hors ligne
Tmyke : Le jour où microsoft se décidera à faire du libre et du multiplateforme , j'y re-réflechirai
Hors ligne
L'utilisation des compilateurs Microsoft est libre, quand au multiplateforme, faut pas trop en demander de la part de crosoft à ce niveau
quand même ....
Hors ligne
C'est vrai , mais j'en ai besoin pour un projet multiplateforme alors ...
Et pis , mon graphiste celuiquiapassésaviesurubuntu me le pardonnerait pas , si j'utilisai un truc copyrighté M$
Sinon , du coup , j'essaie de me servir de Newton pur mais je galère .Quelqu'un peut m'aiguiller sur la voie d'appliquer
des collision entre des nodes irrlicht et d'implémenter une gravité ?
Hors ligne
Il faut savoir qu'avec Newton tu as deux couches. La première te permet de gérer des collisions simples (si on peut dire). On ne parle
pas de physique dans ce cas donc.
En suite, tu as la couche au dessus, qui elle s'occupe de la physique, avec tout ce que cela comporte (Body, Joint, etc...).
A toi de définir quel niveau tu souhaites employer
(dans tous les cas en complement de la doc du SDK, je pourrais te donner quelques piste si tu as des soucis....)
Hors ligne
oki , merci .
Vais essayer de voir ça .
Hors ligne
pour tmyke
je viens de reprendre la version que tu faite de irrnewton1.4.2
1ere surprise les demos fonctionnent super
2eme surprise le code source fonctionne (presque)
3eme surprise quand je le lance alors la
plantage sur dll
plantage sur code dll
plantage sur code lib
as tu une idee d ou cela peut venir
dll ,lib etc version irrlicht 1.4.2 ou version 1.5
Hors ligne
Tu tourne avec quelle version d'Irrlicht, la 1.5 ?
Hors ligne
avec visual c++ express 2008 et irrlicht 1.5
Hors ligne
je suis en train d essayer avec les dll differentes et j ai toujours la meme erreur
"le point d entree de procedure ??? est introuvable dans irlicht.dll"
Hors ligne
dernieres nouvelles d alsace (journal local!!!)
voila j ai teste le programme charactercontroller avec les dll ,lib de irrlicht ver 1.2 , 1.4.1 ,1.4.2 ,1.5
et toujours la meme reponse
je ne sais plus quoi tenter
as tu une idee meme si je dois y passer 10 heures....
merci d avance
Hors ligne
apres maintes reflexions et tests je suis passe de la version visual c++ express 2008 a visual studio 2008 pro
je reteste les programmes et la oh joie tous fonctionnent
donc la solution est simple vc2008 pro et voila merci
Hors ligne
Étrange quand même, surtout que sur ce genre de compilation, entre la version express et la version pro, les différences sont minimes.
Enfin, content que cela fonctionne pour toi, c'est déjà un point important..
Hors ligne