#0 

02-11-2008 12:47:17

ramis
Membre
Date d'inscription: 27-10-2008
Messages: 92

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 :

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


#1 

02-11-2008 15:05:27

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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:

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
                                        );

mais plutôt

Code:

        //!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


#2 

02-11-2008 16:27:53

Perceval
Abonné
Date d'inscription: 20-10-2006
Messages: 105

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


#3 

02-11-2008 17:42:07

ramis
Membre
Date d'inscription: 27-10-2008
Messages: 92

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 :

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


#4 

02-11-2008 18:24:23

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


#5 

02-11-2008 18:33:29

ramis
Membre
Date d'inscription: 27-10-2008
Messages: 92

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


#6 

02-11-2008 18:45:06

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


#7 

02-11-2008 19:20:01

ramis
Membre
Date d'inscription: 27-10-2008
Messages: 92

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


#8 

03-11-2008 11:32:36

ramis
Membre
Date d'inscription: 27-10-2008
Messages: 92

Tmyke : Le jour où microsoft se décidera à faire du libre et du multiplateforme , j'y re-réflechirai wink

Hors ligne


#9 

03-11-2008 13:04:59

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


#10 

03-11-2008 20:02:22

ramis
Membre
Date d'inscription: 27-10-2008
Messages: 92

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


#11 

03-11-2008 20:10:24

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


#12 

03-11-2008 20:28:32

ramis
Membre
Date d'inscription: 27-10-2008
Messages: 92

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

Hors ligne


#13 

08-03-2009 14:03:14

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

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


#14 

08-03-2009 14:12:15

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Tu tourne avec quelle version d'Irrlicht, la 1.5 ?


Force et sagesse...

Hors ligne


#15 

08-03-2009 15:50:12

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

avec visual c++ express 2008 et irrlicht 1.5

Hors ligne


#16 

08-03-2009 16:11:51

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

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


#17 

08-03-2009 18:06:09

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

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


#18 

15-03-2009 12:00:51

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

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


#19 

15-03-2009 13:36:05

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

É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é
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
100 invités en ligne
Aucun membre connecté
RSS Feed