【问题标题】:Creat Static Library in Qt5 and use it在 Qt5 中创建静态库并使用它
【发布时间】:2013-03-20 10:44:40
【问题描述】:

我正在尝试为我的项目创建一个库。 (Qt5、Qt Creator、VS2010编译器)

我从一个最小的测试样本开始检查它的工作原理。

1-我已经创建了一个包含带有方法的类的库

2-我编译得到Dll和Lib文件

3- 在主应用程序中,我成功添加了这个库及其到 .pro 和测试库的路径。

现在,我想摆脱 DLL 并将 lib 文件用作静态库。

所以我将此行添加到我的库 .pro 文件中

CONFIG+=staticlib

现在,我在编译后得到了 lib 文件,但我不能在我的项目中使用它,并且我得到了 Unresolved external symbols... 错误

当我删除 CONFIG+=staticlib 时,它又可以工作了!但它不是静态的。

这些是我添加到主项目的 .pro 文件以加载/链接库的行

INCLUDEPATH +="G:/TestLib/testLib"
LIBS +=-l"G:/Build/debug/testLib"

所以问题是:是否可以在 Qt 中拥有我自己的静态库(非商业许可)?

如果是,我的方法有什么问题?

我应该更改 LIBS+=... 中的某些内容以指定其静态库吗?

我已阅读 This Article,我的代码似乎没有任何问题。

有什么帮助吗?

编辑:问题已解决
问题是我们不需要 Q_DECL_EXPORT 和 Q_DECL_IMPORT 用于静态库! 在那篇粗略的虚幻文章中没有明确提到这一点。

【问题讨论】:

  • 也许您应该添加您的解决方案作为答案并接受它?

标签: qt qt5


【解决方案1】:

问题解决了

问题是静态库不需要Q_DECL_EXPORTQ_DECL_IMPORT!在那篇粗略的虚幻文章中没有明确提到这一点。

Q_DECL_EXPORTQ_DECL_IMPORT 是动态库所必需的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    相关资源
    最近更新 更多