A couple of interesting email list articles regarding libopenvswitch. A recent one titled libopenvswitch in C++, which indicates there are some caveats: most of all the word 'public' used which is a c++ keyword.
That article put me onto a search of other libopenvswitch articles, and this one came up: creating a libopenvswitch-dev package. Which suggested there is quite a bit of work involved in producing a cohesive library.
In that article was a link to a detailed paper from 2011 by Intel called How to Write Shared LibrariesK. The paper covers the ELF structure, dynamic loader, the relocation process, as well as many C/C++ specific requirements. The biggest reason for this link is having to do with the ABI (Application Binary Interface) and it's stability.
2017/07/31 - Open source at work, things getting resolved quickly: a patch series