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

Reply via email to