Hi Stefan, I don't use Windows so can't comment on the platform specifics issues. The macro's used to get things to work under the static build essentially just create C entry points that are exported in the plugin, and then used in your application when you add a USE_OSGPLUGIN(png). Go have a look at the code for the macro to see what is going on under the hood.
W.r.t the linker problems, I guess this is either you're missing linking to libpng in your application, or that the static linking of the OSG's png plugin isn't working quite right. Only a few engineers use the OSG as a static build so it may well be that you are exercising parts that haven't been tested under Windows before. Robert. On Sun, Aug 30, 2009 at 11:02 PM, stefan nortd<[email protected]> wrote: > Hi, > > I am currently using osg statically and cross-platform. I have been pretty > happy with how it worked out but have recently run into problems with > certain plugins. Freetype works fine but png or jpeg does not with VS2008. > > I do the usual USE_OSGPLUGIN(png); and am also setting the path to the > libs (just like with freetype). > > I get the following unresolved symbol linker problems. > > > Code: > > Linking... > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_get_io_ptr > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_destroy_write_struct > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_write_end > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_write_image > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_write_info > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_IHDR > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_compression_level > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_write_fn > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_create_info_struct > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_create_write_struct > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_destroy_read_struct > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_get_channels > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_read_end > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_read_image > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_get_rowbytes > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_read_update_info > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_gamma > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_get_gAMA > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_packing > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_tRNS_to_alpha > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_get_valid > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_gray_1_2_4_to_8 > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_palette_to_rgb > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_swap > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_get_IHDR > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_read_info > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_sig_bytes > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_read_fn > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_check_sig > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_set_error_fn > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_get_error_ptr > osgdb_png.lib(ReaderWriterPNG.obj) : error LNK2001: unresolved external > symbol _png_create_read_struct > > > > > > Unfortunately I do not quite understand the USE_OSGPLUGIN macro and > am therefore a bit stuck here. Is there something obvious I am missing? > How does this macro include symbols statically from the plugins? > > Help very much appreciated ;) > Thank you! > > Cheers, > stefan > > ------------------------ > stefan hechenberger > > http://linear.nortd.com > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=16855#16855 > > > > > > _______________________________________________ > 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

