在实际工作中,许多软件模块是以动态库的方式提供的.做为模块开发人员,我们不仅要掌握如何编写和构建动态库,还要了解如何控制动态库的导出接口,这样,我们可以向模块的用户仅导出必要的接口,而另一些内部接口,为了安全或其他考虑,可以不必导出.当需要导出C++类时,问题显得更复杂一些,不过我认为不应导出C++类成员,而只应导出纯C接口. 和Visual C++不同,GCC编译器默认会导出所有符号.假设我们需要导出两个全局函数test和test2,以及一个C++类foo,此类有两个public成员函数a和b…