Building a shared dynamic library