Hi Iñaki, For any static build work with the OSG I strongly recommend using the latest stable release (2.8.2) or svn/trunk. Prior to this static build really wasn't robust or clean enough to work properly.
Robert. On Fri, Nov 20, 2009 at 10:14 AM, Iñaki García <[email protected]> wrote: > Hi Robert, > > I hadn't tried osgstaticviewer since I didn't found it among the source code > examples, I didn't know there are more examples on the wiki. Now I've seen > that it's necessary to add: > USE_GRAPHICSWINDOW() > and that those things with mangled_names can be replaced by USE_OSGPLUGIN > (the last time I used OSG was in version 1.2). > > When I recover the time lost, I will have a look at how this > select-the-platform works. > > Thank you very much > > Iñaki > > Robert Osfield escribió: >> >> 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 >> >> > > _______________________________________________ > 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

