OK, thanks for the clarification Farshid.

Yes, I was using exactly the same structure. But I didn't knew that
the OSG plug-ins were first looking for their dependencies is
OSG_ROOT\bin before relying upon the PATH. I thought that, when not
found in the OSG_ROOT\bin\osgPlugins-X.Y.Z folder, the required DLLs
were searched for in the PATH.

     Émeric



2014-09-24 20:03 GMT+02:00 Farshid Lashkari <[email protected]>:
> Hi Émeric,
>
> I'm assuming OSG_ROOT refers to the install folder of your OSG based
> application. The plug-ins should go into OSG_ROOT\bin\osgPlugins-X.Y.Z. OSG
> will automatically prepend the "osgPlugins-X.Y.Z\" path when attempting to
> load "osgdb_*.dll" plugins.
>
> For example, let's say I install my application into the "C:\MyApp\" folder.
> Here is how I organize the files:
>
> "C:\MyApp\bin\" contains:
>  - Executables (.exe)
>  - OSG library files (osg.dll, osgDB.dll, osgUtil.dll, ...)
>  - External dependencies (zlib1.dll, libxml2.dll, ...)
>
> "C:\MyApp\bin\osgPlugins-X.Y.Z\" contains:
>  - All OSG reader/writer plugins (osgdb_*.dll)
>
> Any executable launched from the "C:\MyApp\bin\" folder, will automatically
> load dependencies from that folder before searching PATH. When attempting to
> load a reader/writer plugin, OSG will automatically look in
> "C:\MyApp\bin\osgPlugins-X.Y.Z\". If any of those plugins have external
> dependencies, they will be loaded from "C:\MyApp\bin\", before searching in
> PATH.
>
> This should allow multiple OSG based applications using different versions
> to be installed on the system without conflicts.
>
> Hope this clears it up.
>
> Cheers,
> Farshid
>
> On Wed, Sep 24, 2014 at 10:39 AM, Émeric MASCHINO
> <[email protected]> wrote:
>>
>> Hi Farshid,
>>
>> Correct, but what about the plug-ins and examples? They aren't
>> installed in OSG_ROOT\bin. So if you only copy the DLLs in
>> OSG_ROOT\bin, when trying to load a plug-in (installed in
>> OSG_ROOT\bin\osgPlugins-X.Y.Z) or running an example (installed in
>> OSG_ROOT\shared\OpenSceneGraph\bin) that requires an external DLL,
>> this last one will thus be searched in the PATH, with the risk of
>> finding a similarly named DLL elsewhere in the filesystem before
>> reaching the expected on in OSG_ROOT\bin. How do you manage this
>> situation on your own?
>>
>> Cheers,
>>
>>      Émeric
>>
>>
>> 2014-09-24 19:12 GMT+02:00 Farshid Lashkari <[email protected]>:
>> > Hi Émeric,
>> >
>> > Placing the external libraries in OSG_ROOT\bin should work as long as
>> > the
>> > main executable is also in OSG_ROOT\bin. Windows should first search for
>> > DLLs in the same folder as the executable before searching in PATH. So
>> > there
>> > is no need to add your application to PATH, or worry about conflicting
>> > DLLs
>> > in PATH. I've deployed my application like this for years and never had
>> > any
>> > issues.
>> >
>> > Cheers,
>> > Farshid
>> >
>> >
>> > On Wed, Sep 24, 2014 at 10:03 AM, Émeric MASCHINO
>> > <[email protected]> wrote:
>> >>
>> >> Hi,
>> >>
>> >> What's the best practice regarding OSG deployment on Windows? Indeed,
>> >> several plug-ins depend on external libraries. Is it best to put the
>> >> required DLLs in OSG_ROOT\bin\osgPlugins-X.Y.Z or rather in
>> >> OSG_ROOT\bin, thus ensuring that OSG_ROOT\bin is in the PATH so that
>> >> the plug-ins can find them?
>> >>
>> >> With this last approach, there's only one copy of each DLL shared by
>> >> the OSG applications, plug-ins and examples. The drawback is that if a
>> >> similarly named DLL is found in the PATH before reaching OSG_ROOT\bin,
>> >> an incorrect DLL may be loaded.
>> >>
>> >> By contrast, copying the required DLLs in
>> >> OSG_ROOT\bin\osgPlugins-X.Y.Z may also require copying them in
>> >> OSG_ROOT\bin as well as in OSG_ROOT\share\OpenSceneGraph\bin.
>> >>
>> >> Any advice on what's better?
>> >>
>> >>      Émeric
>> >> _______________________________________________
>> >> osg-users mailing list
>> >> [email protected]
>> >>
>> >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>> >
>> >
>> >
>> > _______________________________________________
>> > osg-users mailing list
>> > [email protected]
>> >
>> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>> >
>> _______________________________________________
>> osg-users mailing list
>> [email protected]
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to