C++ 在Qt中可以同时使用静态和动态libs吗

C++ 在Qt中可以同时使用静态和动态libs吗,c++,qt,qt-creator,C++,Qt,Qt Creator,我有一个项目,它使用了我编写的一些库。在我的主要项目中,我使用 LIBS += -LPATH_TO_LIBS -lsomename 那就是平常的事了。如果我将所有库都构建为动态库,它就可以正常工作。如果我将所有lib构建为静态lib,我会得到链接器错误,因为出于某种原因,我猜g++会优先考虑动态lib。但是,如果我将-Wl,-Bstatic添加到我的链接器选项中,那么它也可以正常工作。我的问题是: 我想使用一些lib的静态版本和其他lib的动态版本。如何实现这一点?使用静态和动态库应该不会有任

我有一个项目,它使用了我编写的一些库。在我的主要项目中,我使用

LIBS += -LPATH_TO_LIBS -lsomename
那就是平常的事了。如果我将所有库都构建为动态库,它就可以正常工作。如果我将所有lib构建为静态lib,我会得到链接器错误,因为出于某种原因,我猜
g++
会优先考虑动态lib。但是,如果我将
-Wl,-Bstatic
添加到我的链接器选项中,那么它也可以正常工作。我的问题是:


我想使用一些lib的静态版本和其他lib的动态版本。如何实现这一点?

使用静态和动态库应该不会有任何问题。以下命令行应该可以工作:

g++ object1.o object2.o -lmydynamiclibrary -lmystaticlibrary -o binary
请注意,在命令行中,静态库应放在对象文件和动态库之后,因为对象文件和LIB导入/导出符号是按顺序分析的,对于静态LIB,链接器仅保留此时已知必要的导出符号

如果您想要更详细的答案,您应该告诉我们为链接器执行的命令行是什么,以及您得到的错误是什么