02-11-2008 11:47:17
- ramis
- Membres
- Date d'inscription:
- Messages: 92
- IP: 86.202.111.32
- Courriel
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 :
//!Get all poyls from a mesh in newton units
core::array<core::triangle3df> irr::newton::IUtils::getPolysNewton(
scene::IMesh* iMeshBase,
core::vector3df scaleValue,
float excludeAreaLess,
irr::u32& skippedFace
);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
02-11-2008 14:05:27
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.56.22.64
- Courriel
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:
//!Get all poyls from a mesh in newton units
core::array<core::triangle3df> irr::newton::IUtils::getPolysNewton(
scene::IMesh* iMeshBase,
core::vector3df scaleValue,
float excludeAreaLess,
irr::u32& skippedFace
);mais plutôt
//!Get all poyls from a mesh in newton units
core::array<core::triangle3df> getPolysNewton(
scene::IMesh* iMeshBase,
core::vector3df scaleValue,
float excludeAreaLess,
irr::u32& skippedFace
);Essais, cela ne coute rien.
Force et sagesse...
Hors ligne
02-11-2008 15:27:53
- Perceval
- Membres

- Date d'inscription:
- Messages: 105
- IP: 90.32.46.224
- Courriel
Tmyke doit avoir raison.
Apparemment, cette erreur a été introduite dans la version 4.1 de gcc (http://www.fourmilab.ch/fourmilog/archives/2006-05/000699.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
02-11-2008 16:42:07
- ramis
- Membres
- Date d'inscription:
- Messages: 92
- IP: 86.202.111.32
- Courriel
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
02-11-2008 17:24:23
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.56.22.64
- Courriel
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.![]()
Force et sagesse...
Hors ligne
02-11-2008 17:33:29
- ramis
- Membres
- Date d'inscription:
- Messages: 92
- IP: 86.202.111.32
- Courriel
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
02-11-2008 17:45:06
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.56.22.64
- Courriel
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
Force et sagesse...
Hors ligne
02-11-2008 18:20:01
- ramis
- Membres
- Date d'inscription:
- Messages: 92
- IP: 86.202.111.32
- Courriel
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
03-11-2008 10:32:36
- ramis
- Membres
- Date d'inscription:
- Messages: 92
- IP: 86.202.111.32
- Courriel
Tmyke : Le jour où microsoft se décidera à faire du libre et du multiplateforme , j'y re-réflechirai ![]()
Hors ligne
03-11-2008 12:04:59
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 62.201.129.226
- Courriel
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 .... ![]()
Force et sagesse...
Hors ligne
03-11-2008 19:02:22
- ramis
- Membres
- Date d'inscription:
- Messages: 92
- IP: 86.202.111.32
- Courriel
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
03-11-2008 19:10:24
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 86.218.182.141
- Courriel
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....)
Force et sagesse...
Hors ligne
03-11-2008 19:28:32
- ramis
- Membres
- Date d'inscription:
- Messages: 92
- IP: 86.202.111.32
- Courriel
oki , merci
.
Vais essayer de voir ça .
Hors ligne
08-03-2009 13:03:14
- franbon2005
- Membres
- Date d'inscription:
- Messages: 11
- IP: 82.238.197.75
- Courriel
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
08-03-2009 13:12:15
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 92.130.139.243
- Courriel
Tu tourne avec quelle version d'Irrlicht, la 1.5 ?
Force et sagesse...
Hors ligne
08-03-2009 14:50:12
- franbon2005
- Membres
- Date d'inscription:
- Messages: 11
- IP: 82.238.197.75
- Courriel
avec visual c++ express 2008 et irrlicht 1.5
Hors ligne
08-03-2009 15:11:51
- franbon2005
- Membres
- Date d'inscription:
- Messages: 11
- IP: 82.238.197.75
- Courriel
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
08-03-2009 17:06:09
- franbon2005
- Membres
- Date d'inscription:
- Messages: 11
- IP: 82.238.197.75
- Courriel
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
15-03-2009 11:00:51
- franbon2005
- Membres
- Date d'inscription:
- Messages: 11
- IP: 82.238.197.75
- Courriel
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
15-03-2009 12:36:05
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.33.63.181
- Courriel
É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.. ![]()
Force et sagesse...
Hors ligne



