Hi,
Just some info that might be helpful, regarding linking Boost into your
plugins.
Background:
Nuke makes use of Boost 1.37, and statically links this into its main
executable. These symbols (at least in 6.2 - for 6.3 we've tightened
down what's in the symbol table for DDImage) are exposed in DDImage, and
are obviously in the main Nuke executable as well, but generally Boost
1.37 symbols get leaked, which means that there are issues when trying
to use newer versions of Boost in a Nuke plugin, as the plugin gets
compiled against the newer headers, but at runtime, it picks up the
symbols within Nuke itself for the older version, and more often than
not crashes, due to ABI differences.
I've done a bit of investigation regarding building NDK plugins with
newer versions of Boost (1.43 in this case), and for Linux at least,
I've managed to come up with a way to build plugins so that they can use
newer versions of Boost successfully.
Essentially, it's simply linking statically to Boost when linking your
plugin, however, the Boost lib you're linking in (the whole of Boost
effectively) needs to have been built with: -fvisibility=hidden -fPIC
I've only tried this under Linux 64 with Nuke 6.2 and 6.3, so on other
platforms, I'm not sure what the situation's like, but hopefully this
information will be useful.
Peter
--
Peter Pearson, Software Engineer
The Foundry, 6th Floor, The Communications Building,
48 Leicester Square, London, UK, WC2H 7LT
Tel: +44 (0)20 7434 0449 - Fax: +44 (0)20 7434 1550
Web: www.thefoundry.co.uk
The Foundry Visionmongers Ltd.
Registered in England and Wales No: 4642027
_______________________________________________
Nuke-dev mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev