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

Reply via email to