Hello again.
I’m now trying to build the CVS version of Panda3D. The build is 92% done, when it hangs with this fatal message:
ImportError: /home/dirk/Desktop/My_Programs/panda3d/built/lib/libpandaode.so: undefined symbol: dGeomTriMeshIsTCEnabled
I have the packages python-pyode and python-pyode-doc installed, and have seen my ODE system (version 0.11.1) functioning with other software.
Can somebody tell me what’s going wrong here?
Dirk
P.S. Installing any other version of ODE, in my experience, breaks OGRE.
P.S.S. There’s another detail about my system, which I may as well admit to. As belonging to the Debian/Etch repository, my ‘normal’ ODE version would be 1:0.5.dfsg-2 , and my normal pyode version would be 1.1.0-1 . Yet some of you might notice that these version numbers are just not high enough to support major software. Thus, I do custom compiles.
But, when we install software via custom compiles, the Debian package manager does not usually register this software as installed, because it tracks packages themselves rather than software. And this means, that if I have packages to install with the ‘libode0c2’ runtime as their dependency, those will subsequently fail to install, due to my compiled install of ODE.
Therefore one trick which I rarely but sometimes do use, is to keep the packages installed, and then to do a ‘make install’ on top of the files that first belonged to the packages. I know that in some cases this can result in (pseudo-)packages that stop working, in which case I need to remove the package first, and then ‘make install’ again. Yet I felt that with ODE I pretty much got away with that so far, and one factor for which I might have, would be that the custom compile of ODE does not put the files into any different directory paths. Usually, if I had packages that installed to /usr/lib , and a compiled install to /usr/local/lib, then this would be enough to prevent this trick from working.
I call this ‘a primitive overlay’ of files, because that is what it is in individual directories.
But with Etch, I’m screwed if I can’t do this, because (1) I do have dependent packages which insist that they want to see their other packages, and (2) Etch does not allow me to put sufficiently high version numbers as packages, to allow OGRE, Panda3D and so on to work.
But in this one case, I’m more worried about the ‘installed’ package ‘libode0-dev’ than I am about ‘libode0c2’ itself. And my reason is the description in the package manager, according to which the ‘…-dev’ package does not just include header files, but also static libraries . The kind of linking error that I’m getting from Panda3D, is firstly warning me that objects were originally defined in a different location than the correct one, which gets ignored as the compile continues, and then suggests that a static library was embedded in the generated .so file, which is failing to link to another shared library.
I would guess at this point, that most of you are not getting this warning either, which I can’t reproduce for the moment, but which reads “…originally defined here:”
But (1) OGRE seems to allow me to run Physics demos successfully, and (2) if I can never do an overlay like this under Debian/Etch, the result remains that I cannot install Panda3D anyway. It wouldn’t really help to find this out. Further, if I was just to uninstall the package ‘libode0-dev’ right now, this would also rip out any static libraries and header files which my custom compile overlaid into the same directories.
I do keep track for which (pseudo-)packages I did this, in the directory on my system where I keep many individual source trees.
And still, does anybody have helpful hints about this?