Hi Iñaki,

Have you tried osgstaticviewer?  Please have a look at it, it's the
definitive way to get the OSG working statically.

Robert.

On Wed, Nov 18, 2009 at 6:21 PM, Iñaki García <[email protected]> wrote:
> Hi Robert,
>
> I know the issue with the dynamic plugin registration, and the "mangled
> names" that I have to force including in order to make the plugins link into
> my binary. But what is very rare is that I *explicitly* call
> createGraphicsContext, which calls windowingSystemInterfaceRef, which
> returns NULL when returning a reference to a static variable. And that
> doesn't make sense to me.
>
> Under this circumstances, can the linker exclude
> windowingSystemInterfaceRef? And when a non-existing function is called,
> returning NULL is enough? (crash, freeze or explode seems more suitable)
>
> Another possibility is that the function exists but that static variable
> hasn't been allocated? Why shouldn't it be allocated from the beginning? In
> case it can give a clue, I´m running the debug build, without optimizations.
>
> Chris:
> Do you mean that a static "local-to-a-function" variable must be created by
> someone, and that the DLL init does and my app doesn't? I'm not very
> experienced on this memory-related details.
>
> Iñaki
>
> Robert Osfield escribió:
>>
>> Hi Iñaki? García?
>>
>> Could you sign with the name you wish to be addressed as, as it makes
>> it easier to avoid addressing you incorrectly, thanks.
>>
>> W.r.t getting things working under a static build, the main problem
>> that you have to deal with is that the compiler will not bother
>> linking in symbols that aren't explicitly used, so they default the
>> OSG's proxy registration schemes such as used in osgViewer and osgDB
>> for the plugins.  This means you have to add these symbols in your
>> app.  Have a look at the osgstaticviewer to see the easist way to do
>> this.
>>
>> Robert.
>>
>> On Wed, Nov 18, 2009 at 5:22 PM, Iñaki García <[email protected]> wrote:
>>
>>>
>>> Hi everybody:
>>>
>>> I've a working application (Windows, MFC) with an OSG scene in one
>>> window,
>>> that works correctly when I use OSG's DLLs. But, in order to distribute
>>> it,
>>> I prefer an all-in-one executable, so I've built OSG v2.8.2 statically,
>>> linked to my app with success.
>>>
>>> But when I run it, it does not display anything in its window. I've
>>> debugged
>>> the differences between the statically and dynamically versions to a
>>> point.
>>> In the statically built, the:
>>> osg::GraphicsContext::createGraphicsContext(traits.get())
>>> returns NULL, and in dynamically doesn't.
>>>
>>> If I debug deeper, I find it's because:
>>> windowingSystemInterfaceRef()
>>> returns NULL
>>>
>>> And that's because that function is:
>>> static ref_ptr<GraphicsContext::WindowingSystemInterface>
>>> &windowingSystemInterfaceRef()
>>> {
>>>  static ref_ptr<GraphicsContext::WindowingSystemInterface>
>>> s_WindowingSystemInterface;
>>>  return s_WindowingSystemInterface;
>>> }
>>>
>>> My questions:
>>> How can that function return NULL? Why a different behaviour between
>>> static
>>> and dynamic linkage?
>>>
>>> Best regards
>>> --
>>> * Iñaki García
>>> División de Ingeniería - Engineering Division
>>> European Virtual Engineering (EUVE) <http://www.euve.org>*
>>> Avenida de los Huetos 79, "Edificio azucarera"
>>> 01010 Vitoria-Gasteiz (Álava) - Spain
>>> Tel: +34 945 21 46 46   Fax: +34 945 21 46 47
>>> _______________________________________________
>>> 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