我承认这是一个家庭作业问题,询问这是否可能。我相信答案是肯定的,但我不知道“为什么?”这个问题的答案。对我来说,似乎答案只是'为什么不是'?......任何人都可以提供一些更深入的见解,说明为什么这是真实的(或者如果我错了,那么是不真实的)?看起来这个问题只会被问到是否有一个棘手的部分,但从我所了解的编译来看,似乎没有任何东西会禁止链接到两者。UNIX:将可执行文件链接到静态库和动态库?
回答
是的,当然你可以链接一个静态库和一个动态库。链接到一个静态库基本上与从档案中获取所需的对象文件并将它们包括在链接过程中相同。
如果您要链接的静态库和动态库是针对库,则动态链接是冗余的。它仍然被允许完成,但它是没有意义的(并且只是为可执行文件引入了不必要的运行时依赖项,至少在Unix上)。
在一些像FreeBSD和Linux这样的链接器符号空间的* nixes上,实际上可能不可能链接相同的静态库和共享库。 –
通常,应该没有理由不能链接到静态和动态库,特别是如果它们不冲突(例如,提供相同的符号)。这样做的机制会因编译器而异,但许多免费软件项目实际上都是这样做的 - 他们静态构建所谓的“便利库”,然后将其链接到动态链接的可执行文件中。
我想这就是为什么我无法回答“为什么?”的问题。看起来好像只是因为没有理由你不能。 –
@Logan我能想到的最好的答案是链接器命令行上的一系列对象(ao bo co)和包含它们的静态库(链接器的视图)之间几乎没有区别(libfoo.a )。在第一种情况下,显然您也可以链接到共享库,因此,由于第二种情况几乎相同,因此您可以将其与共享库链接起来。 –
- 1. UNIX:静态库链接到静态库
- 2. 将动态库链接到链接到其他静态库的静态库
- 3. VS2015如何将静态库链接到其他库和可执行文件?
- 4. 什么是静态库,静态链接动态库和动态链接动态库的.lib文件?
- 5. 链接到静态库来构建静态可执行
- 6. 将动态库链接到一个静态库(又名预链接动态库)
- 7. 从可执行文件中提取静态链接的库
- 8. CMake Visual Studio链接可执行文件与静态库
- 9. 静态和动态库链接
- 10. 静态和动态链接库
- 11. 链接动态和静态库RCPP
- 12. 静态链接到动态库。 glibc
- 13. 在可执行文件中找不到C++动态链接库
- 14. 将静态库链接到共享库?
- 15. 将静态C++库链接到c库
- 16. 将静态和动态库链接到同一个可执行文件的原因有哪些问题?
- 17. 如何将外部库静态链接到我的可执行文件中?
- 18. 加载链,静态库和可执行文件
- 19. 如何将静态库链接到gcc的动态库中
- 20. Visual Studio:静态链接到静态库
- 21. 链接静态库与静态库
- 22. 将静态库链接到另一个静态库
- 23. 谷歌测试可执行文件或静态/动态库?
- 24. 链接到静态库
- 25. 静态链接库
- 26. 如何创建自动链接到动态库的静态库?
- 27. 静态链接的可执行文件比动态链接的可执行文件更快吗?
- 28. 是否有可能将静态库链接到Visual Studio中的动态库?
- 29. 静态库自动发现和链接
- 30. 将静态库链接到一个DLL
你会怎么做?你试过了吗?它有用吗? ;-) 祝你好运! – shellter