#1 

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 smile

merci d'avance !

Hors ligne


#2 

02-11-2008 14:05:27

tmyke
Administrateurs
Avatar de tmyke
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


#3 

02-11-2008 15:27:53

Perceval
Membres
Avatar de Perceval
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


#4 

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 wink
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 sad
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 sad

remerci d'avance , et encore merci pour le premier problême wink

Hors ligne


#5 

02-11-2008 17:24:23

tmyke
Administrateurs
Avatar de tmyke
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.
wink


Force et sagesse...

Hors ligne


#6 

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


#7 

02-11-2008 17:45:06

tmyke
Administrateurs
Avatar de tmyke
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


#8 

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 smile

Hors ligne


#9 

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 wink

Hors ligne


#10 

03-11-2008 12:04:59

tmyke
Administrateurs
Avatar de tmyke
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 .... wink


Force et sagesse...

Hors ligne


#11 

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$ wink
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


#12 

03-11-2008 19:10:24

tmyke
Administrateurs
Avatar de tmyke
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 wink

(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


#13 

03-11-2008 19:28:32

ramis
Membres
Date d'inscription:
Messages: 92
IP: 86.202.111.32
Courriel

oki , merci wink .
Vais essayer de voir ça .

Hors ligne


#14 

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


#15 

08-03-2009 13:12:15

tmyke
Administrateurs
Avatar de tmyke
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


#16 

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


#17 

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


#18 

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


#19 

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


#20 

15-03-2009 12:36:05

tmyke
Administrateurs
Avatar de tmyke
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.. wink


Force et sagesse...

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
169 invités en ligne
membre en ligne: -
RSS Feed