Using a C library makes sense if you want to consolidate all implementations of the same functionality into one piece of code - it is probably the only language that can be universally used by higher level languages.
Your work would be significantly easier if you could automate the process to a degree. You might want to have a look at SWIG. It is a binding generator that allows C/C++ code to be used with a large number of other programming languages, including most, if not all, of the languages that you mentioned.
For my rather superficial experience with it, SWIG does a rather decent job, although the generated code does occasionally need some tweaking...