some approaches require using standards like CORBA:
http://en.wikipedia.org/wiki/Common_...r_Architecture
that define structures for data and call convention to link agaist many platform and languages. So if your code is not wrote from the beginning with CORBA, you need some modifications to the sources.
A simpler ready to go implementation is SWIG:
http://en.wikipedia.org/wiki/SWIG
http://swig.org/
that automatically generate the wrapper for all the languages, starting from the headers of the library.
This is 5 minutes opensource solution used by many steady (by long time) Linux libraries (see the tutorial), and work for static linking too.