Plugin_PagingLandScapeSceneManager2.so doesn't exist

qchan

23-11-2008 02:15:47


I'm having trouble running certain parts of the PLSM. When I try to follow the wiki to run the MapSplitter, I get this

./MapSplitter

Creating resource group General
Creating resource group Internal
Creating resource group Autodetect
SceneManagerFactory for type 'DefaultSceneManager' registered.
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Skeleton
MovableObjectFactory for type 'ParticleSystem' registered.
OverlayElementFactory for type Panel registered.
OverlayElementFactory for type BorderPanel registered.
OverlayElementFactory for type TextArea registered.
Registering ResourceManager for type Font
ArchiveFactory for archive type FileSystem registered.
ArchiveFactory for archive type Zip registered.
FreeImage version: 3.11.0
This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2
DDS codec registering
Registering ResourceManager for type HighLevelGpuProgram
Registering ResourceManager for type Compositor
MovableObjectFactory for type 'Entity' registered.
MovableObjectFactory for type 'Light' registered.
MovableObjectFactory for type 'BillboardSet' registered.
MovableObjectFactory for type 'ManualObject' registered.
MovableObjectFactory for type 'BillboardChain' registered.
MovableObjectFactory for type 'RibbonTrail' registered.
Loading library /usr/local/lib/OGRE/RenderSystem_GL
Installing plugin: GL RenderSystem
OpenGL Rendering Subsystem created.
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_ParticleFX
Installing plugin: ParticleFX
Particle Emitter Type 'Point' registered
Particle Emitter Type 'Box' registered
Particle Emitter Type 'Ellipsoid' registered
Particle Emitter Type 'Cylinder' registered
Particle Emitter Type 'Ring' registered
Particle Emitter Type 'HollowEllipsoid' registered
Particle Affector Type 'LinearForce' registered
Particle Affector Type 'ColourFader' registered
Particle Affector Type 'ColourFader2' registered
Particle Affector Type 'ColourImage' registered
Particle Affector Type 'ColourInterpolator' registered
Particle Affector Type 'Scaler' registered
Particle Affector Type 'Rotator' registered
Particle Affector Type 'DirectionRandomiser' registered
Particle Affector Type 'DeflectorPlane' registered
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_BSPSceneManager
Installing plugin: BSP Scene Manager
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_OctreeSceneManager
Installing plugin: Octree & Terrain Scene Manager
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_PagingLandScape2
SceneManagerFactory for type 'PagingLandScapeSceneManager' registered.
*-*-* OGRE Initialising
*-*-* Version 1.6.0 (Shoggoth)
Loading library Plugin_PagingLandScapeSceneManager2
terminate called after throwing an instance of 'Ogre::InternalErrorException'
what(): OGRE EXCEPTION(7:InternalErrorException): Could not load dynamic library Plugin_PagingLandScapeSceneManager2. System Error: Plugin_PagingLandScapeSceneManager2.so: cannot open shared object file: No such file or directory in DynLib::load at OgreDynLib.cpp (line 80)
Aborted


I searched everywhere for the Plugin_PagingLandScapeSceneManager2.so and its no where! It's not in the /usr/lib it's not in /usr/local/lib or /usr/local/lib/OGRE or anything.

I did have some errors initially when compiling. First, the Bootstrap said I needed Libtool 1.4 when I had a much newer version available. So, I ended up changing the bootstrap file to this:

#!/bin/sh

# Check for proper versions of autotools
# We require:
# - autoconf 2.50+
# - automake 1.6+
# - libtool 1.4+

# Deal with some gentoo-specific issues
export WANT_AUTOMAKE='1.7'
export WANT_AUTOCONF_2_5=1

## Using prereq in autoconf rather than here, mostly for the debian systems at
## this point
if test -z "`autoconf --version 2>&1|head -n 1|egrep '2.[56]'`"; then
echo "Autoconf 2.50 or above is required. Aborting build...";
exit 1;
fi

if test -z "`automake --version 2>&1|head -n 1|egrep '1.(([6-9])|([1-9][0-9]))'`"; then
echo "Automake 1.6 or above is required. Aborting build...";
exit 1;
fi

if test 140 -gt "`libtool --version|head -n 1|awk '{print $4;}'|sed "s/\.//g"`"; then
echo "Libtool 1.4 or above is required. Aborting build...";
exit 1;

fi

# clean up files which cause confusion when switch versions of auto*
rm -rf autom4te.cache

# Fire up autotools
libtoolize --force && aclocal $ACLOCAL_FLAGS && autoheader && automake --include-deps --add-missing --foreign && autoconf


After giving bootstrap execution permissions, it went through. I ran ./configure and that went through well. I then ran make -j 4 (the -j 4 for 4 threads) and it went through, but it then gave an error that I was able to fix by going here:

http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=8074

After that, it compiled perfectly! I figured everything was all set until I went to try to run a few samples and the MapSplitter. Now, I'm completely lost. I do know I need that file I mentioned, but its no where to be found.

HELP!!!!

qchan

27-11-2008 00:40:34


Well, this is what I found out so far.

PLSM is NOT compatible with Ogre 1.6. It constantly references the OctreeSceneManager when a lot of what it's calling for has been delegated to the SceneManager class (at least in 1.6). So, the new version of Ogre simply breaks this.

The fix that I described for the compiler error is actually associated to this very same problem. The fix actually forces the compiler to skip a good chunk of code. This is why the Plugin file is never made.

Since no one has a Linux build of the PLSM, I'll see if I can make one to help people avoid this hassle.

buckEd

27-11-2008 12:19:55

Can anyone officialy confirm or deny whether PLSM 2 is compatible with Ogre 1.6?

If so, what would one need to do to get both running together. If not, when can we expect a version which does run with soggoth.
Don't get me wrong. Not to put pressure on anyone. I just need to know if it worth trying or if it is just wasted time.

cheers,
Ed.

tuan kuranes

27-11-2008 13:32:32

plsm2 is compatible for 1.6.

PLSM_OCTREE is a Define that permits user choice about wether to rune PLSM2 on top of CHC octree scene manager or on top of Octree Scene Manager.
Plsm scene manager has to inherit from one of them.

buckEd

27-11-2008 14:17:18

Thanks for clearing that up tuan.
So I will have another look at it, as now I know it's worth it.

qchan

27-11-2008 21:10:11

plsm2 is compatible for 1.6.

PLSM_OCTREE is a Define that permits user choice about wether to rune PLSM2 on top of CHC octree scene manager or on top of Octree Scene Manager.
Plsm scene manager has to inherit from one of them.



But neither of them work. You say its compatible, but when running under the CHC Octree Scene Manager, there's a compiler error. When ran under the Octree Scene Manager, it compiles, but only compiles 2 library files. It's missing a whole host of files that are supposed to be compiled.

If it really was compatible, then this wouldn't be the case.
Perhaps you're thinking of Windows. Maybe in Windows it "may" work, but in Linux, it's completely broken!

tuan kuranes

27-11-2008 22:55:21

it compiles, but only compiles 2 library files
not sure what does that mean ?
Maybe in Windows it "may" work, but in Linux, it's completely broken!
Code always worked on both linux and windows. It's only a matter of build script on linux that didn't get updated for a long time, missing maintainer.

qchan

27-11-2008 22:59:40

it compiles, but only compiles 2 library files
not sure what does that mean ?
Maybe in Windows it "may" work, but in Linux, it's completely broken!
Code always worked on both linux and windows. It's only a matter of build script on linux that didn't get updated for a long time, missing maintainer.



But that doesn't help me. If the build script hasn't been updated, then it doesn't help me because I don't know what needs to be changed in the script. Mainly because I don't know all that has been changed in the code that would need to be applied to the build script.

Archwyrm

07-12-2008 23:31:58

Loading library Plugin_PagingLandScapeSceneManager2
terminate called after throwing an instance of 'Ogre::InternalErrorException'
what(): OGRE EXCEPTION(7:InternalErrorException): Could not load dynamic library Plugin_PagingLandScapeSceneManager2. System Error: Plugin_PagingLandScapeSceneManager2.so: cannot open shared object file: No such file or directory in DynLib::load at OgreDynLib.cpp (line 80)
Aborted


The reason this happens is because the build system produces differently named plugins from what is being loaded by the mapsplitter and PLSM2 plugin. You can either change the names of the installed libraries /usr/lib/OGRE/Plugin_PagingLandScape2.so and /usr/lib/OGRE/Plugin_PagingLandScape2.la to what the applications want (though this will break the .la file, technically) or you can change the application source to load the library names that you have (which is what I have done and recommend).

So you need to change the loadPlugin calls in Tools/MapSplitter/src/MapUtil.cpp at or about line 241 and Samples/Common/include/PagingLandScape2Application.h at or about line 55 to load "Plugin_PagingLandScape2".

Edit: I have posted a patch for the libtool issue.