我有一个项目使用我编写的一些库。在我的主要项目中,我使用
链接这些库LIBS += -LPATH_TO_LIBS -lsomename
所以通常的东西。如果我将所有库构建为动态库,它就可以正常工作。如果我将所有库构建为静态,我会收到链接器错误,因为出于某种原因,我猜 g++
优先考虑动态库。但是如果我将 -Wl,-Bstatic
添加到我的链接器选项,那么它也可以正常工作。这是我的问题:
我想使用某些库的静态版本和其他库的动态版本。我怎样才能做到这一点?
最佳答案
同时使用静态库和动态库应该没有问题。以下命令行应该可以工作:
g++ object1.o object2.o -lmydynamiclibrary -lmystaticlibrary -o binary
请注意,在命令行中,静态库应放在目标文件和动态库之后,因为目标文件和库导入/导出符号是按顺序分析的,对于静态库,链接器仅保留已知必要的导出符号在那一刻。
如果您想要更详细的答案,您应该告诉我们为链接器执行的命令行是什么以及您遇到的错误是什么
关于c++ - 是否可以在 Qt 中同时使用静态库和动态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42111235/