4
A
回答
7
源文件的名称在链接过程中并不重要。
如果文件具有相同的内容,那么你将有一个问题,假设.c文件包含导出的符号(例如非静态或非模板函数,或EXTERN变量)。
3
这取决于。如果foo.c和foo.h定义了相同的函数和/或变量,那么是的,会有多个定义错误。如果他们只有相同的文件名,但包含不同的代码,则不会有问题。
0
如果你给出你的静态库,你不需要包含foo.c,因为这将是lib的一部分,如果他们有自己的foo.c,它会混淆编译器和链接器,并可能导致问题,如果你们都有类似的功能,或者它会包含错误的标题。
你解决这个最好的方法是使用一个命名空间因而你的代码保持它的独特。
namespace myfooname
{
void foo()
{
//stuff
}
}
2
链接的文件名
本身有问题最少的连接器,但有些IDE的会抱怨,如果文件被添加 - 即使他们是在不同的文件夹。但这通常不是什么大问题。
不要发布静态库(无源)
首先,你不应该独自重新分配一个静态库。代码和兼容性取决于编译器,许多常用设置,比如哪些运行时库(静态/动态,调试/释放,单线程已经从VC中解脱出来),一些C++设置,例如异常处理,虚拟成员函数指针表示等等。你最终需要构建数百种变体来支持主流编译器,而且你最终还是需要一些与之相似的人。
始终包括源,因此用户可以重建他的箱子静态库。或者使用动态库 - 但它有自己的陷阱。
命名空间
如所提到的,使用命名空间来避免冲突。不要过量,如果你有源代码,用户可以随时重新命名它。但请记住,using namespace
声明不应出现在标题中,因此代码需要稍微调整。
相关问题
- 1. VC++链接器删除间接依赖于静态库
- 2. 当一个静态库依赖于另一个静态库时,是否需要指定链接依赖关系?
- 3. 静态库依赖关系
- 4. 自动链接一个静态库的依赖性
- 5. 将依赖关系链接到静态库?
- 6. g ++静态库依赖于动态库
- 7. 静态链接库是否需要链接它们的依赖关系?
- 8. UNIX:静态库链接到静态库
- 9. C++链接的问题 - 动态与静态库的依赖关系
- 10. 如何将C++静态库与依赖于标准库的XCode链接起来?
- 11. 链接动态和静态库RCPP
- 12. 静态和动态库链接
- 13. 创建依赖于其他的静态库(RestKit)静态库
- 14. 建立依赖于另一个静态库的静态库
- 15. 如何编译静态链接依赖关系的autotools项目?
- 16. 什么是静态库,静态链接动态库和动态链接动态库的.lib文件?
- 17. 将Visual Studio中的静态库与复合依赖链接起来
- 18. 静态库自动发现和链接
- 19. 静态库链接失败
- 20. 链接到静态库
- 21. 静态库链接两次
- 22. Python静态方法和依赖注入
- 23. Atl71.dll依赖依然存在,即使静态链接到ATL被选中
- 24. c#库的链接依赖关系
- 25. 如何静态链接通过FFI彼此依赖的Rust和C源?
- 26. 静态库和SCons的传递依赖关系
- 27. 使用静态库和应用程序管理依赖关系
- 28. 在gcc中同时使用静态链接库和动态链接库
- 29. 静态链接库和动态链接库之间的区别是什么
- 30. 动态链接共享库与依赖关系
所有你提到静态库,造成问题的问题,也与任何编译的代码会导致问题的DLL,确实。 – 2009-06-12 07:49:08