LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Does any physics engine work on linux (alongside a 3D engine)? (https://www.linuxquestions.org/questions/programming-9/does-any-physics-engine-work-on-linux-alongside-a-3d-engine-4175420573/)

irrcode 08-06-2012 12:50 AM

Does any physics engine work on linux (alongside a 3D engine)?
 
I have spent a great deal of time trying to get ANY of the following to work under (ubuntu 12.04lts) linux with no success for even the examples (with physics and 3D) that come with each. Rather, I get one error after another. Ogre, irrlicht, and bullet all seem to kind-of / almost work but only when alone.
  • Irrlicht with bullet
  • Irrlicht with ODE
  • Irrlicht with PAL + ODE
  • Irrlicht with PAL + Bullet
  • Irrlicht with irrBullet + Bullet
  • Irrlicht with irrOde + ode
  • OGRE with ODE
  • OGRE with bullet
    etc

These have been downloaded from both source and through apt-get. If both methods were available, both were tried. Multiple computers used - hardware unlikely a reason.

I am ready to leave Linux as a game platform, dropping all support. While Linux is solid for general desktop and server use, it seems to have failed me for videogame development. On the other hand, win32 supported all of this more-or-less, which I don't like admitting after nearly a decade of (all but) exclusive Linux use.

sites are irrlicht, pal, ogre, bullet, ode

Some posts on other sites include: here, here, and here


Any ideas?

H_TeXMeX_H 08-06-2012 05:43 AM

So is it Linux or Ubuntu that you wish to drop ? They are NOT the same you know.

PAL may not compile because you have the svn version, these are not guaranteed to compile. Not to mention that it is beta software. Irrlicht and ODE should compile, what errors do you get there ?

On Ubuntu you should use the distro packages as much as possible, rather than compiling stuff yourself. If you plan on compiling many things from source, maybe you should try another distro.

414N 08-06-2012 06:07 AM

Ubuntu comes with no header files installed by default, so it's perfectly normal -- if you're trying to compile something which requires library XYZ to compile -- that it can't be compiled because library XYZ headers could not be found, even if the library itself is installed on the system. You should install the relevant *-dev packages in order to compile from source.
You can install in one-shot every build dependency of a package with
Code:

apt-get build-dep PKG
where PKG is the name of the package for which you desire to install its build dependencies (i.e. libs and headers it needs in order to compile successfully). Of course PKG must be in the repository and a package for it must exist for apt to be able to find its build dependencies. Be aware that this can help you install all -dev packages needed to build PKG as is found in the repository, but, if you're trying to build a newer version of that software (e.g: from svn/git) or using different compile-time switches, it may not suffice.
Which were the errors that you encountered, by the way?

irrcode 08-06-2012 10:40 AM

Some of the various errors that I have logs of:

ogre:
Code:

-------------- Build: Debug in ogre_test001 ---------------

Compiling: main.cpp
In file included from /usr/include/OGRE/ExampleApplication.h:26:0,
                from /home/GENERIC_USR/Desktop/CODEBLOCKS_PROJECTS/ogre_test001/main.cpp:12:
/usr/include/OGRE/ExampleFrameListener.h:51:21: fatal error: OIS/OIS.h: No such file or directory
compilation terminated.
Process terminated with status 1 (0 minutes, 5 seconds)
1 errors, 0 warnings


PAL:
Code:

    USR@USR-desktop:~/svn/pal/bin$ make
   
   
    Scanning dependencies of target libpal
    [  1%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/errorlog.cpp.o
    [  2%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/factoryconfig.cpp.o
    [  4%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/osfs.cpp.o
    [  5%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/os.cpp.o
    [  7%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/statusobject.cpp.o
    [  8%] Building CXX object pal/CMakeFiles/libpal.dir/pal.cpp.o
    [ 10%] Building CXX object pal/CMakeFiles/libpal.dir/palActuators.cpp.o
    [ 11%] Building CXX object pal/CMakeFiles/libpal.dir/palBodies.cpp.o
    [ 12%] Building CXX object pal/CMakeFiles/libpal.dir/palBodyBase.cpp.o
    [ 14%] Building CXX object pal/CMakeFiles/libpal.dir/palCollision.cpp.o
    [ 15%] Building CXX object pal/CMakeFiles/libpal.dir/palException.cpp.o
    [ 17%] Building CXX object pal/CMakeFiles/libpal.dir/palFactory.cpp.o
    [ 18%] Building CXX object pal/CMakeFiles/libpal.dir/palFluid.cpp.o
    [ 20%] Building CXX object pal/CMakeFiles/libpal.dir/palGeometry.cpp.o
    [ 21%] Building CXX object pal/CMakeFiles/libpal.dir/palLinks.cpp.o
    [ 22%] Building CXX object pal/CMakeFiles/libpal.dir/palMath.cpp.o
    [ 24%] Building CXX object pal/CMakeFiles/libpal.dir/palSensors.cpp.o
    [ 25%] Building CXX object pal/CMakeFiles/libpal.dir/palSolver.cpp.o
    [ 27%] Building CXX object pal/CMakeFiles/libpal.dir/palStatic.cpp.o
    [ 28%] Building CXX object pal/CMakeFiles/libpal.dir/palSoftBody.cpp.o
    [ 30%] Building CXX object pal/CMakeFiles/libpal.dir/palStringable.cpp.o
    [ 31%] Building CXX object pal/CMakeFiles/libpal.dir/palTerrain.cpp.

   
    [ 32%] Building CXX object pal/CMakeFiles/libpal.dir/palCharacter.cpp.o
    [ 34%] Building CXX object pal/CMakeFiles/libpal.dir/__/pal_i/hull.cpp.o
    Linking CXX shared library ../lib/libpal.so
    [ 34%] Built target libpal
    Scanning dependencies of target libpal_bullet
    [ 35%] Building CXX object pal_i/CMakeFiles/libpal_bullet.dir/bullet/bullet_pal.cpp.o
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In function ‘bool CustomMaterialCombinerCallback(btManifoldPoint&, const btCollisionObject*, int, int, const btCollisionObject*, int, int)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:219:66: error: cannot convert ‘const btCollisionObject*’ to ‘const btCollisionObjectWrapper*’ for argument ‘2’ to ‘void btAdjustInternalEdgeContacts(btManifoldPoint&, const btCollisionObjectWrapper*, const btCollisionObjectWrapper*, int, int, int)’
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In member function ‘virtual void palBulletPhysics::RayCast(Float, Float, Float, Float, Float, Float, Float, palRayHit&)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:370:72: error: invalid conversion from ‘const btRigidBody*’ to ‘btRigidBody*’ [-fpermissive]
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In member function ‘virtual btScalar palBulletCustomResultCallback::addSingleResult(btCollisionWorld::LocalRayResult&, bool)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:416:70: error: invalid conversion from ‘const btRigidBody*’ to ‘btRigidBody*’ [-fpermissive]
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In member function ‘virtual void palBulletPhysics::Init(const palPhysicsDesc&)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:761:28: error: invalid conversion from ‘bool (*)(btManifoldPoint&, const btCollisionObject*, int, int, const btCollisionObject*, int, int)’ to ‘ContactAddedCallback {aka bool (*)(btManifoldPoint&, const btCollisionObjectWrapper*, int, int, const btCollisionObjectWrapper*, int, int)}’ [-fpermissive]
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In member function ‘virtual void palBulletPhysics::StartIterate(Float)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:858:88: error: static_cast from type ‘const btCollisionObject*’ to type ‘btCollisionObject*’ casts away qualifiers
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:859:88: error: static_cast from type ‘const btCollisionObject*’ to type ‘btCollisionObject*’ casts away qualifiers
    make[2]: *** [pal_i/CMakeFiles/libpal_bullet.dir/bullet/bullet_pal.cpp.o] Error 1
    make[1]: *** [pal_i/CMakeFiles/libpal_bullet.dir/all] Error 2
    make: *** [all] Error 2


irrODE - after fixing all the wrong referenced include files with variously wrongly capitalised letters, such as irrOde.h,IrrODe.h, etc or making links and installing irrklang the unlisted dependency.


Code:

-------------- Build: Linux in IrrOdeCar ---------------

Compiling: ../source/IrrOdeCar/CAeroVehicle.cpp
Compiling: ../source/IrrOdeCar/CAutoPilot.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp: In member function ‘irr::f32 CAutoPilot::getRollControl(irr::f32, wchar_t*)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp:99:24: warning: variable ‘vAhf’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp: In member function ‘void CAutoPilot::step(irr::f32&, irr::f32&, irr::f32&, irr::f32&)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp:223:32: warning: variable ‘vxy’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp:223:52: warning: variable ‘vxz’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CCameraController.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CCameraController.cpp: In member function ‘void CCameraController::update()’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CCameraController.cpp:145:26: warning: variable ‘vPos’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CCar.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CCar.cpp: In member function ‘virtual bool CCar::onEvent(irr::ode::IIrrOdeEvent*)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CCar.cpp:193:26: warning: variable ‘vForeward’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CCockpitCar.cpp
Compiling: ../source/IrrOdeCar/CCockpitPlane.cpp
Compiling: ../source/IrrOdeCar/CConfigFileManager.cpp
Compiling: ../source/IrrOdeCar/CController.cpp
Compiling: ../source/IrrOdeCar/CCustomEventReceiver.cpp
Compiling: ../source/IrrOdeCar/CEventVehicleState.cpp
Compiling: ../source/IrrOdeCar/CGUINeedleIndicator.cpp
Compiling: ../source/IrrOdeCar/CHeli.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CHeli.cpp: In member function ‘virtual void CHeli::odeStep(irr::u32)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CHeli.cpp:31:24: warning: variable ‘rot’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CIrrOdeCarState.cpp
Compiling: ../source/IrrOdeCar/CIrrOdeCarTrack.cpp
Compiling: ../source/IrrOdeCar/CMenu.cpp
Compiling: ../source/IrrOdeCar/CMeshCombiner.cpp
Compiling: ../source/IrrOdeCar/CPlane.cpp
Compiling: ../source/IrrOdeCar/CProgressBar.cpp
Compiling: ../source/IrrOdeCar/CProjectile.cpp
Compiling: ../source/IrrOdeCar/CRandomForestNode.cpp
Compiling: ../source/IrrOdeCar/CRearView.cpp
Compiling: ../source/IrrOdeCar/CSettings.cpp
Compiling: ../source/IrrOdeCar/CTank.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp: In member function ‘virtual void CTank::activate()’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:95:24: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:96:28: warning: variable ‘up’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:97:28: warning: variable ‘tgt’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp: In member function ‘virtual irr::u32 CTank::update()’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:128:26: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:133:26: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:134:26: warning: variable ‘up’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:135:26: warning: variable ‘tgt’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CTargetSelector.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CConnection.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CRoadLoader.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CRoadMeshLoader.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CSegment.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CSurface.cpp
Compiling: ../source/IrrOdeCar/irrCC.cpp
Compiling: ../source/IrrOdeCar/irrodecar_main.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/irrodecar_main.cpp: In member function ‘virtual void CShaderCallBack::OnSetConstants(irr::video::IMaterialRendererServices*, irr::s32)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/irrodecar_main.cpp:63:23: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
Linking console executable: ../bin/Linux/IrrOdeCar
.objs/source/IrrOdeCar/CAeroVehicle.o: In function `CAeroVehicle::CAeroVehicle(irr::IrrlichtDevice*, irr::scene::ISceneNode*, CIrrCC*, CRearView*)':
CAeroVehicle.cpp:(.text+0x169): undefined reference to `irr::ode::CIrrOdeSceneNode::setUserData(void*)'
CAeroVehicle.cpp:(.text+0x212): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
CAeroVehicle.cpp:(.text+0x252): undefined reference to `irr::ode::CIrrOdeBody::getStepMotorFromName(char const*)'
CAeroVehicle.cpp:(.text+0x27c): undefined reference to `irr::ode::CIrrOdeBody::getStepMotorFromName(char const*)'
CAeroVehicle.cpp:(.text+0x2a6): undefined reference to `irr::ode::CIrrOdeBody::getStepMotorFromName(char const*)'
CAeroVehicle.cpp:(.text+0x2d0): undefined reference to `irr::ode::CIrrOdeBody::getGeomFromName(char const*)'
CAeroVehicle.cpp:(.text+0x32b): undefined reference to `irr::ode::CIrrOdeBody::getMotorFromName(char const*)'
CAeroVehicle.cpp:(.text+0x346): undefined reference to `typeinfo for irr::ode::CIrrOdeMotor'
CAeroVehicle.cpp:(.text+0x3a1): undefined reference to `irr::ode::CIrrOdeBody::getMotorFromName(char const*)'
.objs/source/IrrOdeCar/CAeroVehicle.o: In function `CAeroVehicle::~CAeroVehicle()':
CAeroVehicle.cpp:(.text+0x715): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CAeroVehicle.o: In function `CAeroVehicle::onEvent(irr::ode::IIrrOdeEvent*)':
CAeroVehicle.cpp:(.text+0xea9): undefined reference to `irr::ode::CIrrOdeMotor::setForce(float)'
CAeroVehicle.cpp:(.text+0xef6): undefined reference to `irr::ode::CIrrOdeMotor::setForce(float)'
CAeroVehicle.cpp:(.text+0xfda): undefined reference to `irr::ode::CIrrOdeBody::addForceAtPosition(irr::core::vector3d<float>, irr::core::vector3d<float>)'
CAeroVehicle.cpp:(.text+0x149c): undefined reference to `irr::ode::CIrrOdeServo::setServoPos(float)'
.objs/source/IrrOdeCar/CAeroVehicle.o: In function `CAeroVehicle::postShotEvent()':
CAeroVehicle.cpp:(.text+0x15a9): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CAeroVehicle.cpp:(.text+0x15f2): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CAeroVehicle.o:(.rodata._ZTIN3irr3ode12IIrrOdeMotorE[typeinfo for irr::ode::IIrrOdeMotor]+0x8): undefined reference to `typeinfo for irr::ode::CIrrOdeSceneNode'
.objs/source/IrrOdeCar/CAutoPilot.o: In function `CAutoPilot::setTarget(irr::scene::ISceneNode*)':
CAutoPilot.cpp:(.text+0x397): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CAutoPilot.cpp:(.text+0x404): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CAutoPilot.o: In function `CAutoPilot::step(float&, float&, float&, float&)':
CAutoPilot.cpp:(.text+0x19d3): undefined reference to `irr::ode::CIrrOdeGeomRay::set(irr::core::vector3d<float>, irr::core::vector3d<float>, float)'
CAutoPilot.cpp:(.text+0x19ee): undefined reference to `irr::ode::CIrrOdeGeomRay::checkWithWorld(irr::core::array<irr::core::vector3d<float>, irr::core::irrAllocator<irr::core::vector3d<float> > >&)'
CAutoPilot.cpp:(.text+0x1dd9): undefined reference to `irr::ode::CIrrOdeGeomRay::set(irr::core::vector3d<float>, irr::core::vector3d<float>, float)'
CAutoPilot.cpp:(.text+0x1df4): undefined reference to `irr::ode::CIrrOdeGeomRay::checkWithWorld(irr::core::array<irr::core::vector3d<float>, irr::core::irrAllocator<irr::core::vector3d<float> > >&)'
.objs/source/IrrOdeCar/CAutoPilot.o: In function `CAutoPilot::setState(CAutoPilot::eAutoPilotState)':
CAutoPilot.cpp:(.text+0x2479): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CAutoPilot.cpp:(.text+0x24d6): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CAutoPilot.o: In function `CAutoPilot::setEnabled(bool)':
CAutoPilot.cpp:(.text+0x253d): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CAutoPilot.cpp:(.text+0x2586): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CCameraController.o: In function `CCameraController::setTarget(irr::ode::CIrrOdeBody*)':
CCameraController.cpp:(.text+0x74d): undefined reference to `irr::ode::CIrrOdeSceneNode::getOdeClassname()'
CCameraController.cpp:(.text+0x833): undefined reference to `irr::ode::CIrrOdeSceneNode::getOdeClassname()'
CCameraController.cpp:(.text+0x919): undefined reference to `irr::ode::CIrrOdeSceneNode::getOdeClassname()'
CCameraController.cpp:(.text+0x9ff): undefined reference to `irr::ode::CIrrOdeSceneNode::getOdeClassname()'
.objs/source/IrrOdeCar/CCar.o: In function `CCar::CCar(irr::IrrlichtDevice*, irr::scene::ISceneNode*, CIrrCC*, CRearView*)':
CCar.cpp:(.text+0x2f4): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CCar.cpp:(.text+0x320): undefined reference to `irr::ode::CIrrOdeSceneNode::setUserData(void*)'
CCar.cpp:(.text+0x377): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x3b1): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x423): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x45d): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x503): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
.objs/source/IrrOdeCar/CCar.o:CCar.cpp:(.text+0x56c): more undefined references to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)' follow
.objs/source/IrrOdeCar/CCar.o: In function `CCar::CCar(irr::IrrlichtDevice*, irr::scene::ISceneNode*, CIrrCC*, CRearView*)':
CCar.cpp:(.text+0x75d): undefined reference to `irr::ode::CIrrOdeSurfaceParameters::CIrrOdeSurfaceParameters()'
CCar.cpp:(.text+0x7ca): undefined reference to `irr::ode::CIrrOdeSceneNode::getParameter(irr::core::string<wchar_t, irr::core::irrAllocator<wchar_t> >) const'
CCar.cpp:(.text+0x7d6): undefined reference to `irr::ode::CIrrOdeSurfaceParameters::copy(irr::ode::CIrrOdeSurfaceParameters*)'
CCar.cpp:(.text+0x829): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x8f8): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x9b7): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0xa94): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0xd7c): undefined reference to `typeinfo for irr::ode::CIrrOdeServo'
CCar.cpp:(.text+0xdcb): undefined reference to `typeinfo for irr::ode::CIrrOdeServo'
CCar.cpp:(.text+0xe37): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CCar.o: In function `CCar::~CCar()':
CCar.cpp:(.text+0x1053): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
Process terminated with status 1 (0 minutes, 50 seconds)
50 errors, 14 warnings

tokamak:
Code:

==== Building tokamak ====
make[1]: `../../lib/libtokamak_md.a' is up to date.
USR@USR-desktop:~/physics/linux/tokamak/tokamak-premake/build/gnu$ sudo make install
make: *** No rule to make target `install'.  Stop.

irrbullet:
Code:

-------------- Build: Linux Release in irrBullet ---------------

Compiling: bulletworld.cpp
In file included from /home/USR/SDK/irrBulletSDK-0.1.8/source/bulletworld.h:15:0,
                from /home/USR/SDK/irrBulletSDK-0.1.8/source/bulletworld.cpp:17:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:55:44: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:56:44: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:60:50: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
Compiling: bvhtrianglemeshshape.cpp
Compiling: collisioncallbackinformation.cpp
In file included from /home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:6:0:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:55:44: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:56:44: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:60:50: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:17:67: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp: In member function ‘ICollisionObject* const ICollisionCallbackInformation::getBody0() const’:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:20:113: error: static_cast from type ‘const btCollisionObject*’ to type ‘btCollisionObject*’ casts away qualifiers
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp: At global scope:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:27:67: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp: In member function ‘ICollisionObject* const ICollisionCallbackInformation::getBody1() const’:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:30:113: error: static_cast from type ‘const btCollisionObject*’ to type ‘btCollisionObject*’ casts away qualifiers
Process terminated with status 1 (0 minutes, 23 seconds)
2 errors, 8 warnings


There are more, but that's a good start.


Quote:

Originally Posted by H_TeXMeX_H (Post 4747090)
So is it Linux or Ubuntu that you wish to drop ? They are NOT the same you know.

PAL may not compile because you have the svn version, these are not guaranteed to compile. Not to mention that it is beta software. Irrlicht and ODE should compile, what errors do you get there ?

On Ubuntu you should use the distro packages as much as possible, rather than compiling stuff yourself. If you plan on compiling many things from source, maybe you should try another distro.

While I realize there are many distros, if I can't get this working, the best I will be able to do will be recommending users try a binary win32 version with Wine for software-rendering without acceleration.

PAL comes with two different install methods, both were tried. Using the ubuntu -dev packages were tried first in all cases.




Quote:

Originally Posted by 414N (Post 4747099)
Ubuntu comes with no header files installed by default, so it's perfectly normal -- if you're trying to compile something which requires library XYZ to compile -- that it can't be compiled because library XYZ headers could not be found, even if the library itself is installed on the system. You should install the relevant *-dev packages in order to compile from source.
You can install in one-shot every build dependency of a package with
Code:

apt-get build-dep PKG
where PKG is the name of the package for which you desire to install its build dependencies (i.e. libs and headers it needs in order to compile successfully). Of course PKG must be in the repository and a package for it must exist for apt to be able to find its build dependencies. Be aware that this can help you install all -dev packages needed to build PKG as is found in the repository, but, if you're trying to build a newer version of that software (e.g: from svn/git) or using different compile-time switches, it may not suffice.
Which were the errors that you encountered, by the way?

I believe I already took care of missing -dev packages, but I would be more than happy to find out that that is the only problem.

dugan 08-06-2012 11:02 AM

The error in Tokamak should be obvious (hint: the compilation succeeded). Every other example shows that one of the libraries you need is not being found.

For ogre, you need libogre-dev. For irrlicht, it's ibirrlicht-dev. And for ODE, it's libode-dev. They are available in, and should be installed from, Ubuntu's repositories. If you already have those, and you installed them using apt, then you broke your system trying to additionally install them "from source".

It's possible, of course, that there are engines that actually need to be built with Visual Studio, but that's not the case with ogre, irrlicht or ode.

If you've confirmed that the libraries are indeed installed, then confirm that you've correctly set your linker flags, include directories, and other build parameters.

irrcode 08-06-2012 10:35 PM

I can kind of get bullet from source, it compiles fine using cmake, (if I add the -fPIC options) but trying to run one of the demos it build now says this:
Code:

Bullet version 280
Xlib:  extension "GLX" missing on display ":0.0".
freeglut (/home/uu2/bullet/Demos/AllBulletDemos/AppAllBulletDemos): OpenGL GLX extension not supported by display ':0.0'

made using:

Code:

cmake . -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=RelWithDebugInfo -DBUILD_EXTRAS=ON -DINSTALL_EXTRA_LIBS=ON -DBUILD_DEMOS=on -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_C_FLAGS="-fPIC" -DINSTALL_LIBS=on
again, thats just PURE bullet physics. which has no deb package.


Quote:

Originally Posted by dugan (Post 4747296)
The error in Tokamak should be obvious (hint: the compilation succeeded). Every other example shows that one of the libraries you need is not being found.

For ogre, you need libogre-dev. For irrlicht, it's ibirrlicht-dev. And for ODE, it's libode-dev. They are available in, and should be installed from, Ubuntu's repositories. If you already have those, and you installed them using apt, then you broke your system trying to additionally install them "from source".

It's possible, of course, that there are engines that actually need to be built with Visual Studio, but that's not the case with ogre, irrlicht or ode.

If you've confirmed that the libraries are indeed installed, then confirm that you've correctly set your linker flags, include directories, and other build parameters.

I tried that too.

dugan 08-06-2012 11:14 PM

Bullet is telling you that your video drivers don't support 3D acceleration. It needs 3D acceleration, so it won't run. Your installation is having video driver issues.

irrcode 08-06-2012 11:27 PM

Code:

$ glxinfo | grep direct
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".


irrcode 08-06-2012 11:34 PM

Please note that am running a couple of different machines. The GLX problem seems to be from an Intel Media Graphics Accelerator 950. I DON"T expect it to be fast. I expect it to work and tank the laptop.

The other machine has a gtx 670 though, so that shouldn't be an issue.

On the low-spec one:
Code:

$ grep -i glx /var/log/Xorg.0.log
[    69.095] (II) LoadModule: "glx"
[    69.095] (II) Loading /usr/lib/i386-linux-gnu/xorg/extra-modules/libglx.so
[    69.135] (II) Module glx: vendor="NVIDIA Corporation"
[    69.135] (II) NVIDIA GLX Module  295.40  Thu Apr  5 21:49:54 PDT 2012
[    69.135] (II) Loading extension GLX
[    70.383] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)

BUT... this was after trying to install glx drivers - so it may or may not have anything to do with it.

irrcode 08-06-2012 11:38 PM

Quote:

Originally Posted by irrcode (Post 4747282)
Code:

-------------- Build: Debug in ogre_test001 ---------------

Compiling: main.cpp
In file included from /usr/include/OGRE/ExampleApplication.h:26:0,
                from /home/GENERIC_USR/Desktop/CODEBLOCKS_PROJECTS/ogre_test001/main.cpp:12:
/usr/include/OGRE/ExampleFrameListener.h:51:21: fatal error: OIS/OIS.h: No such file or directory
compilation terminated.
Process terminated with status 1 (0 minutes, 5 seconds)
1 errors, 0 warnings


This part is sort of solved by copying ExampleApplication.h around from a source on the internet. OIS can be installed via the libois deb.

resetreset 08-07-2012 02:13 AM

I didn't read everything above, but just a suggestion: why don't you make Games using WebGL?

414N 08-07-2012 03:53 AM

Sheesh, this is gonna be a long post ;)
Looking at all the errors you reported it seems like all those libs have crippled/messed up build systems, primarily because the devs developed the projects on MS Visual Studio first, then added a minimum build support to Linux via premake (I never encountered it, and I built a lot of Linux software) without looking at existing Linux build standards, like installation of headers and libraries in system-wide locations etc...
Quote:

Originally Posted by irrcode (Post 4747282)
ogre:
Code:

-------------- Build: Debug in ogre_test001 ---------------

Compiling: main.cpp
In file included from /usr/include/OGRE/ExampleApplication.h:26:0,
                from /home/GENERIC_USR/Desktop/CODEBLOCKS_PROJECTS/ogre_test001/main.cpp:12:
/usr/include/OGRE/ExampleFrameListener.h:51:21: fatal error: OIS/OIS.h: No such file or directory
compilation terminated.
Process terminated with status 1 (0 minutes, 5 seconds)
1 errors, 0 warnings


Seems like you hadn't got a system install of ois when you first tried to build this example.

Quote:

Originally Posted by irrcode (Post 4747282)
PAL:
Code:

    USR@USR-desktop:~/svn/pal/bin$ make
   
   
    Scanning dependencies of target libpal
    [  1%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/errorlog.cpp.o
    [  2%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/factoryconfig.cpp.o
    [  4%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/osfs.cpp.o
    [  5%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/os.cpp.o
    [  7%] Building CXX object pal/CMakeFiles/libpal.dir/__/framework/statusobject.cpp.o
    [  8%] Building CXX object pal/CMakeFiles/libpal.dir/pal.cpp.o
    [ 10%] Building CXX object pal/CMakeFiles/libpal.dir/palActuators.cpp.o
    [ 11%] Building CXX object pal/CMakeFiles/libpal.dir/palBodies.cpp.o
    [ 12%] Building CXX object pal/CMakeFiles/libpal.dir/palBodyBase.cpp.o
    [ 14%] Building CXX object pal/CMakeFiles/libpal.dir/palCollision.cpp.o
    [ 15%] Building CXX object pal/CMakeFiles/libpal.dir/palException.cpp.o
    [ 17%] Building CXX object pal/CMakeFiles/libpal.dir/palFactory.cpp.o
    [ 18%] Building CXX object pal/CMakeFiles/libpal.dir/palFluid.cpp.o
    [ 20%] Building CXX object pal/CMakeFiles/libpal.dir/palGeometry.cpp.o
    [ 21%] Building CXX object pal/CMakeFiles/libpal.dir/palLinks.cpp.o
    [ 22%] Building CXX object pal/CMakeFiles/libpal.dir/palMath.cpp.o
    [ 24%] Building CXX object pal/CMakeFiles/libpal.dir/palSensors.cpp.o
    [ 25%] Building CXX object pal/CMakeFiles/libpal.dir/palSolver.cpp.o
    [ 27%] Building CXX object pal/CMakeFiles/libpal.dir/palStatic.cpp.o
    [ 28%] Building CXX object pal/CMakeFiles/libpal.dir/palSoftBody.cpp.o
    [ 30%] Building CXX object pal/CMakeFiles/libpal.dir/palStringable.cpp.o
    [ 31%] Building CXX object pal/CMakeFiles/libpal.dir/palTerrain.cpp.

   
    [ 32%] Building CXX object pal/CMakeFiles/libpal.dir/palCharacter.cpp.o
    [ 34%] Building CXX object pal/CMakeFiles/libpal.dir/__/pal_i/hull.cpp.o
    Linking CXX shared library ../lib/libpal.so
    [ 34%] Built target libpal
    Scanning dependencies of target libpal_bullet
    [ 35%] Building CXX object pal_i/CMakeFiles/libpal_bullet.dir/bullet/bullet_pal.cpp.o
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In function ‘bool CustomMaterialCombinerCallback(btManifoldPoint&, const btCollisionObject*, int, int, const btCollisionObject*, int, int)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:219:66: error: cannot convert ‘const btCollisionObject*’ to ‘const btCollisionObjectWrapper*’ for argument ‘2’ to ‘void btAdjustInternalEdgeContacts(btManifoldPoint&, const btCollisionObjectWrapper*, const btCollisionObjectWrapper*, int, int, int)’
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In member function ‘virtual void palBulletPhysics::RayCast(Float, Float, Float, Float, Float, Float, Float, palRayHit&)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:370:72: error: invalid conversion from ‘const btRigidBody*’ to ‘btRigidBody*’ [-fpermissive]
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In member function ‘virtual btScalar palBulletCustomResultCallback::addSingleResult(btCollisionWorld::LocalRayResult&, bool)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:416:70: error: invalid conversion from ‘const btRigidBody*’ to ‘btRigidBody*’ [-fpermissive]
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In member function ‘virtual void palBulletPhysics::Init(const palPhysicsDesc&)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:761:28: error: invalid conversion from ‘bool (*)(btManifoldPoint&, const btCollisionObject*, int, int, const btCollisionObject*, int, int)’ to ‘ContactAddedCallback {aka bool (*)(btManifoldPoint&, const btCollisionObjectWrapper*, int, int, const btCollisionObjectWrapper*, int, int)}’ [-fpermissive]
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp: In member function ‘virtual void palBulletPhysics::StartIterate(Float)’:
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:858:88: error: static_cast from type ‘const btCollisionObject*’ to type ‘btCollisionObject*’ casts away qualifiers
    /home/USR/svn/pal/pal/pal_i/bullet/bullet_pal.cpp:859:88: error: static_cast from type ‘const btCollisionObject*’ to type ‘btCollisionObject*’ casts away qualifiers
    make[2]: *** [pal_i/CMakeFiles/libpal_bullet.dir/bullet/bullet_pal.cpp.o] Error 1
    make[1]: *** [pal_i/CMakeFiles/libpal_bullet.dir/all] Error 2
    make: *** [all] Error 2


These seems errors coming from header files and source files not aligned to the same interfaces. Probably a temporary SVN code inconsistency.
Quote:

Originally Posted by irrcode (Post 4747282)
irrODE - after fixing all the wrong referenced include files with variously wrongly capitalised letters, such as irrOde.h,IrrODe.h, etc or making links and installing irrklang the unlisted dependency.


Code:

-------------- Build: Linux in IrrOdeCar ---------------

Compiling: ../source/IrrOdeCar/CAeroVehicle.cpp
Compiling: ../source/IrrOdeCar/CAutoPilot.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp: In member function ‘irr::f32 CAutoPilot::getRollControl(irr::f32, wchar_t*)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp:99:24: warning: variable ‘vAhf’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp: In member function ‘void CAutoPilot::step(irr::f32&, irr::f32&, irr::f32&, irr::f32&)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp:223:32: warning: variable ‘vxy’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CAutoPilot.cpp:223:52: warning: variable ‘vxz’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CCameraController.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CCameraController.cpp: In member function ‘void CCameraController::update()’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CCameraController.cpp:145:26: warning: variable ‘vPos’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CCar.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CCar.cpp: In member function ‘virtual bool CCar::onEvent(irr::ode::IIrrOdeEvent*)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CCar.cpp:193:26: warning: variable ‘vForeward’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CCockpitCar.cpp
Compiling: ../source/IrrOdeCar/CCockpitPlane.cpp
Compiling: ../source/IrrOdeCar/CConfigFileManager.cpp
Compiling: ../source/IrrOdeCar/CController.cpp
Compiling: ../source/IrrOdeCar/CCustomEventReceiver.cpp
Compiling: ../source/IrrOdeCar/CEventVehicleState.cpp
Compiling: ../source/IrrOdeCar/CGUINeedleIndicator.cpp
Compiling: ../source/IrrOdeCar/CHeli.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CHeli.cpp: In member function ‘virtual void CHeli::odeStep(irr::u32)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CHeli.cpp:31:24: warning: variable ‘rot’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CIrrOdeCarState.cpp
Compiling: ../source/IrrOdeCar/CIrrOdeCarTrack.cpp
Compiling: ../source/IrrOdeCar/CMenu.cpp
Compiling: ../source/IrrOdeCar/CMeshCombiner.cpp
Compiling: ../source/IrrOdeCar/CPlane.cpp
Compiling: ../source/IrrOdeCar/CProgressBar.cpp
Compiling: ../source/IrrOdeCar/CProjectile.cpp
Compiling: ../source/IrrOdeCar/CRandomForestNode.cpp
Compiling: ../source/IrrOdeCar/CRearView.cpp
Compiling: ../source/IrrOdeCar/CSettings.cpp
Compiling: ../source/IrrOdeCar/CTank.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp: In member function ‘virtual void CTank::activate()’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:95:24: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:96:28: warning: variable ‘up’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:97:28: warning: variable ‘tgt’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp: In member function ‘virtual irr::u32 CTank::update()’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:128:26: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:133:26: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:134:26: warning: variable ‘up’ set but not used [-Wunused-but-set-variable]
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/CTank.cpp:135:26: warning: variable ‘tgt’ set but not used [-Wunused-but-set-variable]
Compiling: ../source/IrrOdeCar/CTargetSelector.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CConnection.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CRoadLoader.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CRoadMeshLoader.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CSegment.cpp
Compiling: ../source/IrrOdeCar/RoadCreator/CSurface.cpp
Compiling: ../source/IrrOdeCar/irrCC.cpp
Compiling: ../source/IrrOdeCar/irrodecar_main.cpp
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/irrodecar_main.cpp: In member function ‘virtual void CShaderCallBack::OnSetConstants(irr::video::IMaterialRendererServices*, irr::s32)’:
/home/GENERIC_USR/irrode/trunk/source/IrrOdeCar/irrodecar_main.cpp:63:23: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
Linking console executable: ../bin/Linux/IrrOdeCar
.objs/source/IrrOdeCar/CAeroVehicle.o: In function `CAeroVehicle::CAeroVehicle(irr::IrrlichtDevice*, irr::scene::ISceneNode*, CIrrCC*, CRearView*)':
CAeroVehicle.cpp:(.text+0x169): undefined reference to `irr::ode::CIrrOdeSceneNode::setUserData(void*)'
CAeroVehicle.cpp:(.text+0x212): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
CAeroVehicle.cpp:(.text+0x252): undefined reference to `irr::ode::CIrrOdeBody::getStepMotorFromName(char const*)'
CAeroVehicle.cpp:(.text+0x27c): undefined reference to `irr::ode::CIrrOdeBody::getStepMotorFromName(char const*)'
CAeroVehicle.cpp:(.text+0x2a6): undefined reference to `irr::ode::CIrrOdeBody::getStepMotorFromName(char const*)'
CAeroVehicle.cpp:(.text+0x2d0): undefined reference to `irr::ode::CIrrOdeBody::getGeomFromName(char const*)'
CAeroVehicle.cpp:(.text+0x32b): undefined reference to `irr::ode::CIrrOdeBody::getMotorFromName(char const*)'
CAeroVehicle.cpp:(.text+0x346): undefined reference to `typeinfo for irr::ode::CIrrOdeMotor'
CAeroVehicle.cpp:(.text+0x3a1): undefined reference to `irr::ode::CIrrOdeBody::getMotorFromName(char const*)'
.objs/source/IrrOdeCar/CAeroVehicle.o: In function `CAeroVehicle::~CAeroVehicle()':
CAeroVehicle.cpp:(.text+0x715): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CAeroVehicle.o: In function `CAeroVehicle::onEvent(irr::ode::IIrrOdeEvent*)':
CAeroVehicle.cpp:(.text+0xea9): undefined reference to `irr::ode::CIrrOdeMotor::setForce(float)'
CAeroVehicle.cpp:(.text+0xef6): undefined reference to `irr::ode::CIrrOdeMotor::setForce(float)'
CAeroVehicle.cpp:(.text+0xfda): undefined reference to `irr::ode::CIrrOdeBody::addForceAtPosition(irr::core::vector3d<float>, irr::core::vector3d<float>)'
CAeroVehicle.cpp:(.text+0x149c): undefined reference to `irr::ode::CIrrOdeServo::setServoPos(float)'
.objs/source/IrrOdeCar/CAeroVehicle.o: In function `CAeroVehicle::postShotEvent()':
CAeroVehicle.cpp:(.text+0x15a9): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CAeroVehicle.cpp:(.text+0x15f2): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CAeroVehicle.o:(.rodata._ZTIN3irr3ode12IIrrOdeMotorE[typeinfo for irr::ode::IIrrOdeMotor]+0x8): undefined reference to `typeinfo for irr::ode::CIrrOdeSceneNode'
.objs/source/IrrOdeCar/CAutoPilot.o: In function `CAutoPilot::setTarget(irr::scene::ISceneNode*)':
CAutoPilot.cpp:(.text+0x397): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CAutoPilot.cpp:(.text+0x404): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CAutoPilot.o: In function `CAutoPilot::step(float&, float&, float&, float&)':
CAutoPilot.cpp:(.text+0x19d3): undefined reference to `irr::ode::CIrrOdeGeomRay::set(irr::core::vector3d<float>, irr::core::vector3d<float>, float)'
CAutoPilot.cpp:(.text+0x19ee): undefined reference to `irr::ode::CIrrOdeGeomRay::checkWithWorld(irr::core::array<irr::core::vector3d<float>, irr::core::irrAllocator<irr::core::vector3d<float> > >&)'
CAutoPilot.cpp:(.text+0x1dd9): undefined reference to `irr::ode::CIrrOdeGeomRay::set(irr::core::vector3d<float>, irr::core::vector3d<float>, float)'
CAutoPilot.cpp:(.text+0x1df4): undefined reference to `irr::ode::CIrrOdeGeomRay::checkWithWorld(irr::core::array<irr::core::vector3d<float>, irr::core::irrAllocator<irr::core::vector3d<float> > >&)'
.objs/source/IrrOdeCar/CAutoPilot.o: In function `CAutoPilot::setState(CAutoPilot::eAutoPilotState)':
CAutoPilot.cpp:(.text+0x2479): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CAutoPilot.cpp:(.text+0x24d6): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CAutoPilot.o: In function `CAutoPilot::setEnabled(bool)':
CAutoPilot.cpp:(.text+0x253d): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CAutoPilot.cpp:(.text+0x2586): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CCameraController.o: In function `CCameraController::setTarget(irr::ode::CIrrOdeBody*)':
CCameraController.cpp:(.text+0x74d): undefined reference to `irr::ode::CIrrOdeSceneNode::getOdeClassname()'
CCameraController.cpp:(.text+0x833): undefined reference to `irr::ode::CIrrOdeSceneNode::getOdeClassname()'
CCameraController.cpp:(.text+0x919): undefined reference to `irr::ode::CIrrOdeSceneNode::getOdeClassname()'
CCameraController.cpp:(.text+0x9ff): undefined reference to `irr::ode::CIrrOdeSceneNode::getOdeClassname()'
.objs/source/IrrOdeCar/CCar.o: In function `CCar::CCar(irr::IrrlichtDevice*, irr::scene::ISceneNode*, CIrrCC*, CRearView*)':
CCar.cpp:(.text+0x2f4): undefined reference to `irr::ode::CIrrOdeBody::getID()'
CCar.cpp:(.text+0x320): undefined reference to `irr::ode::CIrrOdeSceneNode::setUserData(void*)'
CCar.cpp:(.text+0x377): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x3b1): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x423): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x45d): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x503): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
.objs/source/IrrOdeCar/CCar.o:CCar.cpp:(.text+0x56c): more undefined references to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)' follow
.objs/source/IrrOdeCar/CCar.o: In function `CCar::CCar(irr::IrrlichtDevice*, irr::scene::ISceneNode*, CIrrCC*, CRearView*)':
CCar.cpp:(.text+0x75d): undefined reference to `irr::ode::CIrrOdeSurfaceParameters::CIrrOdeSurfaceParameters()'
CCar.cpp:(.text+0x7ca): undefined reference to `irr::ode::CIrrOdeSceneNode::getParameter(irr::core::string<wchar_t, irr::core::irrAllocator<wchar_t> >) const'
CCar.cpp:(.text+0x7d6): undefined reference to `irr::ode::CIrrOdeSurfaceParameters::copy(irr::ode::CIrrOdeSurfaceParameters*)'
CCar.cpp:(.text+0x829): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x8f8): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0x9b7): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0xa94): undefined reference to `irr::ode::CIrrOdeSceneNode::getChildByName(char const*, irr::scene::ISceneNode*)'
CCar.cpp:(.text+0xd7c): undefined reference to `typeinfo for irr::ode::CIrrOdeServo'
CCar.cpp:(.text+0xdcb): undefined reference to `typeinfo for irr::ode::CIrrOdeServo'
CCar.cpp:(.text+0xe37): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
.objs/source/IrrOdeCar/CCar.o: In function `CCar::~CCar()':
CCar.cpp:(.text+0x1053): undefined reference to `irr::ode::CIrrOdeManager::getSharedInstance()'
Process terminated with status 1 (0 minutes, 50 seconds)
50 errors, 14 warnings


All those "undefined reference" errors mean that the linker was not able to find the proper libs to link those symbols to.
Try installing first the library system-wide then compiling example applications, like IrrOdeCar seems to be.
If the library lacks an "install" target, try adding
Code:

LDFLAGS=-L/path/to/directory/containing/library/files
to the make command.
Quote:

Originally Posted by irrcode (Post 4747282)
tokamak:
Code:

==== Building tokamak ====
make[1]: `../../lib/libtokamak_md.a' is up to date.
USR@USR-desktop:~/physics/linux/tokamak/tokamak-premake/build/gnu$ sudo make install
make: *** No rule to make target `install'.  Stop.


Like dugan said, compilation here succeeded but tokamak makefile hasn't got an "install" target.
Having tried to build it myself I can confirm that the build system is a mess and all it does is compiling source files to object files and nothing else.
You could create a static library by running
Code:

ar -cvq libtokamak.a *.o
inside the obj/Debug directory. This library could then be copied in /usr/lib or your project libs/ directory (if you create one) and it would be accessible during builds using the -ltokamak flag.
Quote:

Originally Posted by irrcode (Post 4747282)
irrbullet:
Code:

-------------- Build: Linux Release in irrBullet ---------------

Compiling: bulletworld.cpp
In file included from /home/USR/SDK/irrBulletSDK-0.1.8/source/bulletworld.h:15:0,
                from /home/USR/SDK/irrBulletSDK-0.1.8/source/bulletworld.cpp:17:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:55:44: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:56:44: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:60:50: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
Compiling: bvhtrianglemeshshape.cpp
Compiling: collisioncallbackinformation.cpp
In file included from /home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:6:0:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:55:44: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:56:44: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.h:60:50: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:17:67: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp: In member function ‘ICollisionObject* const ICollisionCallbackInformation::getBody0() const’:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:20:113: error: static_cast from type ‘const btCollisionObject*’ to type ‘btCollisionObject*’ casts away qualifiers
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp: At global scope:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:27:67: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp: In member function ‘ICollisionObject* const ICollisionCallbackInformation::getBody1() const’:
/home/USR/SDK/irrBulletSDK-0.1.8/source/collisioncallbackinformation.cpp:30:113: error: static_cast from type ‘const btCollisionObject*’ to type ‘btCollisionObject*’ casts away qualifiers
Process terminated with status 1 (0 minutes, 23 seconds)
2 errors, 8 warnings


Again, this seems like an internal error in code. Try manually removing the "-Wignored-qualifiers" flag from the makefile and rebuild the project.

Quote:

Originally Posted by irrcode (Post 4747282)
While I realize there are many distros, if I can't get this working, the best I will be able to do will be recommending users try a binary win32 version with Wine for software-rendering without acceleration.

I suggest you to report all these difficulties and issues in the projects' bug trackers (this would be the best place)/forums/irc channels to push developers in improving the Linux support.
Anyway, why do you think wine lacks hardware acceleration? ;)
Quote:

Originally Posted by irrcode (Post 4747282)
PAL comes with two different install methods, both were tried. Using the ubuntu -dev packages were tried first in all cases.

Do you mean the dynamic linking version and the static linking one?
Quote:

Originally Posted by irrcode (Post 4747730)
Code:

$ glxinfo | grep direct
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".


Those errors mean that the glx extension (the one which interconnect X11/Xorg and OpenGL) is not loaded and cannot be used to create a new OpenGL window. Judging by your Xorg.log.0:
Quote:

Originally Posted by irrcode (Post 4747730)
Code:

$ grep -i glx /var/log/Xorg.0.log
[    69.095] (II) LoadModule: "glx"
[    69.095] (II) Loading /usr/lib/i386-linux-gnu/xorg/extra-modules/libglx.so
[    69.135] (II) Module glx: vendor="NVIDIA Corporation"
[    69.135] (II) NVIDIA GLX Module  295.40  Thu Apr  5 21:49:54 PDT 2012
[    69.135] (II) Loading extension GLX
[    70.383] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)


it seems like you're trying to use the nvidia driver on the Intel GMA950 machine.
If you installed nvidia binary drivers, please uninstall them and reinstall mesa + xf86-video-intel which provide hardware acceleration for intel cards.

H_TeXMeX_H 08-07-2012 08:52 AM

Install OIS before Ogre.

irrcode 08-07-2012 10:32 PM

Quote:

Originally Posted by 414N (Post 4747898)
These seems errors coming from header files and source files not aligned to the same interfaces. Probably a temporary SVN code inconsistency.

Is there an easy way to retrieve old versions like there is in git, but in SVN?

Quote:

Originally Posted by 414N (Post 4747898)
You could create a static library by running
Code:

ar -cvq libtokamak.a *.o
inside the obj/Debug directory. This library could then be copied in /usr/lib or your project libs/ directory (if you create one) and it would be accessible during builds using the -ltokamak flag.

While I haven't yet been able to try this, I will later today/morning, this looks promising!

Quote:

Originally Posted by 414N (Post 4747898)
I suggest you to report all these difficulties and issues in the projects' bug trackers (this would be the best place)/forums/irc channels to push developers in improving the Linux support.
Anyway, why do you think wine lacks hardware acceleration? ;)

On it. I haven't had the best luck with wine and 3D in the past. Except for the old Anim8or windows software. Wine does wonders for form-based win32-trapped software though. How good is the the WineAPI for compiling 3d against?

Quote:

Originally Posted by 414N (Post 4747898)
Do you mean the dynamic linking version and the static linking one?

Those too. But I was talking about their cmake and premake stuff.

Quote:

Originally Posted by 414N (Post 4747898)
Those errors mean that the glx extension (the one which interconnect X11/Xorg and OpenGL) is not loaded

good call. removing most of the nvidia stuff fixed the problem although nvidia-commons would not uninstall without removing the xubunut/ubuntu package.Not sure why any of nvidia was installed anyway.

Following the steps I have figured out has gotten me properly installed on a virtual machine of LinuxMint 13:
  • irrlicht
  • ogre
  • bullet (probably)
  • ode

but I still need a c++ wrapper to mix one of the graphics libraries (irrlicht or ogre) with one of the physics libraries (bullet or ode). Options I know of are irrbullet, irrode, btogre, ogrebullet. I can't use ogreode for licensing reasons concerning special deployment systems which I want to support.

NOTE:ODE is installed through the apt-get but it seems sketchy and not quite working although this may be because I don't understand how to link with it properly.

Quote:

Originally Posted by 414N (Post 4747898)
Seems like you hadn't got a system install of ois when you first tried to build this example.

Quote:

Originally Posted by H_TeXMeX_H (Post 4748109)
Install OIS before Ogre.

Thanks, yeah I figured that out earlier today. That was my bad, I didn't realise what it was or that it was a dependant software but found it as a deb in the software manager.

414N 08-09-2012 02:44 AM

Quote:

Originally Posted by irrcode (Post 4748589)
Is there an easy way to retrieve old versions like there is in git, but in SVN?

Of course. When checking out from svn you can specify a revision number or date (in yyyymmdd format).
Looking at the svn browser for PAL, it seems like we're at revision 596 currently. You can try checking out from release 595 downwards:
Code:

svn co -r 595 http://pal.svn.sourceforge.net/viewvc/pal/ pal
Quote:

Originally Posted by irrcode (Post 4748589)
On it. I haven't had the best luck with wine and 3D in the past. Except for the old Anim8or windows software. Wine does wonders for form-based win32-trapped software though. How good is the the WineAPI for compiling 3d against?

Well, if you're referring to Winelib, I guess you should try compiling some Direct3D code, but I really don't know if it would work and how good it would.
For cross platform interoperability without the need to write different graphics implementations, I would stick to OpenGL (maybe using SDL too) though.
Quote:

Originally Posted by irrcode (Post 4748589)
Those too. But I was talking about their cmake and premake stuff.

Don't know about your experience with premake, but it seems a little crufty to me after trying to build tokamak.
Unless the cmake system is broken for PAL, I would stick with it.
Quote:

Originally Posted by irrcode (Post 4748589)
good call. removing most of the nvidia stuff fixed the problem although nvidia-commons would not uninstall without removing the xubunut/ubuntu package.Not sure why any of nvidia was installed anyway.

Of which xubuntu/ubuntu package are you talking about? xorg?
Quote:

Originally Posted by irrcode (Post 4748589)
Following the steps I have figured out has gotten me properly installed on a virtual machine of LinuxMint 13:
  • irrlicht
  • ogre
  • bullet (probably)
  • ode

but I still need a c++ wrapper to mix one of the graphics libraries (irrlicht or ogre) with one of the physics libraries (bullet or ode). Options I know of are irrbullet, irrode, btogre, ogrebullet. I can't use ogreode for licensing reasons concerning special deployment systems which I want to support.

Well, you could write your own wrapper which ties together graphics and physics information in an abstract way so their implementations could be interchanged with no functionality loss.
Of course this means you'll have to carefully design your own game platform before starting any real action, but it could come in handy even in future projects. If you decide to go this way, please remember to implement complete unit tests on the abstract platform before writing real implementation code.
Quote:

Originally Posted by irrcode (Post 4748589)
NOTE:ODE is installed through the apt-get but it seems sketchy and not quite working although this may be because I don't understand how to link with it properly.

Have you checked that the libode-dev package got installed?


All times are GMT -5. The time now is 01:29 AM.