Hi Neil,
For some reason it is not picking up osg.dll from the osg71-osg.dll.
No. There is no osg.dll. There is only osg71-osg.dll. The example, when
recompiled against the proper osg.lib, will load osg71-osg.dll at runtime.
Did you recompile the examples after rebuilding OSG itself? Are you sure
you're linking the examples to the osg.lib that you just built (the one
for your new version of OSG)? Check your linker paths.
Tim had the same problem.
http://forum.openscenegraph.org/viewtopic.php?t=7840
I found these osg71- things were just an intermediate on their way to their
final resting place (as almost described in Robert's note). One MUST run the
INSTALL build after building to ensure the intermediates are moved and renamed
to their proper destinations.
I think both of you are just trying to do too many things at once, not
thinking each step through.
When I do the Build INSTALL the osg71- is still there and as mentioned the
osg.dll is not picked out.
The osg71- should stay there.
Again, please stop focusing on the prefix. That is not the cause of the
problem. The fact that it's there is normal. It should not go away. If
your executables have problems starting, saying that they're missing a
DLL, it can be one of 2 things:
1. You didn't relink the executables to the osg.lib that goes with the
osg71-osg.dll. So it's still linked to the old version of OSG, and so
still looking for the old DLLs.
2. You didn't set up your search paths to find your new DLLs. Did you
add you OpenSceneGraph\bin directory to your PATH? At runtime, an
executable looks for the DLLs it needs either in the current directory
(the same directory where the executable is), or the Windows
system/system32 directories (but I don't recommend you copy any of your
own DLLs there), or on your system's PATH.
Everyone else (including those of us using VS10) have OSG DLLs prefixed
with osgXX- and it works fine for everyone, so this is not the problem.
The problem is how your executable is linked, or where it searches for
DLLs at runtime.
To recap:
When you start an executable, what does it say?
If it says it can't find osg.dll, then it's linked to your old version
of OSG. Check your linker paths, and recompile and relink your
executable. If this happens with the examples that you just compiled for
your new version of OSG, then that probably means that you have some
library paths set up in Visual Studio that are causing your old version
of OSG's libs to be found before the new version's libs. The name of the
DLL is encoded inside the lib, and since the new version of OSG is
building osg.lib and osg71-osg.dll, that means that if your executable
links to THAT osg.lib, it will be looking for osg71-osg.dll. If it's not
then that's your problem, linking to the wrong lib.
If it says it can't find osg71-osg.dll, then that means that at runtime,
the program can't find the DLL. Add your OpenSceneGraph\bin to your
system PATH, and it will find it.
Other than the above general advice based on what could possibly be
going wrong, I don't have access to your setup, so I can't help that
much more. There are so many things that could be wrong that you'll have
to try and find out what's going on. Take it one step at a time, but
please remember that the osg71- prefix is not the problem. The OSG build
system names the DLLs that way, and the lib file contains the correct
name to be able to find the DLL, so it all works. The problem lies
elsewhere.
Hope this helps,
J-S
--
______________________________________________________
Jean-Sebastien Guay [email protected]
http://www.cm-labs.com/
http://whitestar02.webhop.org/
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org