我有一个设计不良的库,该库在头文件中具有非inline
函数的实现。
我必须使用该库的项目依赖于它,但是在链接时它会在头文件中生成所有非inline
函数的重复定义。
一个简单的解决方法是声明函数inline
并照常进行编译,一个更好的解决方法是将实现文件移动到它们自己的.cpp
文件中,并将其余文件编译为库。
所以我的问题是双重的: 1)如果我内联声明函数,会影响它们的行为,即是否有可能不会正常发生名称冲突,而是会在我声明内联函数后发生。例如是否可以使它们不是线程安全的。 2)(可选)是否存在用于在Linux / OS X下编译动态链接库的教科书或详细指南。