c++ - 是否可以在 Qt 中同时使用静态库和动态库

标签 c++ qt qt-creator

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

链接这些库
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/

相关文章:

c++ - C++ 的简单生成文件

qt - 如何在 QtCreator 工具提示中显示 API 文档?

c++ - 如何比较 C++ 中的两个 ostream 对象是否相等?

c++ - vector 构造函数中的段错误

c++ - libwebsockets.h : Issue with lws_write: C++ string to C conversion and send

macos - 没有应用程序包的 QT 命令行可执行二进制文件有 Macdeployqt 吗?

c++ - 向导中的必填字段

c++ - 在 Qt 中将 QVector 写入文本文件

c++ - QT Creator CMakeLists.txt c++ 链接错误

android - Qt 创建者 : create an APK compatible with multiple ABIs?