是否可以在Qt中使用静态库和动态库

时间:2017-02-08 10:57:47

标签: c++ qt qt-creator

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

链接这些库
LIBS += -LPATH_TO_LIBS -lsomename

所以通常的东西。如果我将所有的lib构建为动态库,它可以正常工作。如果我将所有的libs构建为静态的,我会遇到链接器错误,因为出于某种原因,我认为g++优先考虑动态库。但是如果我将-Wl,-Bstatic添加到我的链接器选项中,那么它也能正常工作。这是我的问题:

我想使用某些库的静态版本和其他库的动态版本。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

使用静态库和动态库应该没有任何问题。以下命令行应该有效:

g++ object1.o object2.o -lmydynamiclibrary -lmystaticlibrary -o binary

请注意,静态库应放在命令行中的目标文件和动态库之后,因为按顺序分析目标文件和libs导入/导出符号,对于静态库,链接器只保留已知必需的导出符号那一刻。

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