I have a poorly designed library that has implementations of non-inline
functions in a header file.
My project which has to use the library relies on it, but it produces duplicate definitions of all the non-inline
functions in the header file upon linking.
An easy fix is to declare the functions inline
and compile as usual, an even better fix is to move the implementation files to their own .cpp
files and compile the rest as a library.
So my question is twofold: 1) If I declare the functions inline, will it affect their behaviour, i.e. is it possible that a name collision might not be occuring normally but will after I declare the functions inline. e.g. can it make them not-thread-safe. 2) (Optional) Is there a textbook or a detailed guide to compiling dynamically linked libraries under Linux/OS X.