在Qt5中创建静态库并使用它

时间:2013-03-20 10:44:41

标签: qt qt5

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

我从一个最小的测试样本开始,检查它是如何工作的。

1 - 我创建了一个包含带方法

的类的库

2 - 我编译它并获取Dll和Lib文件

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

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

所以我将这一行添加到我的库.pro文件

CONFIG+=staticlib

现在,我在编译后得到lib文件,但是我不能在我的项目中使用它而且我得到未解析的外部符号...错误

当我删除CONFIG + = staticlib时,它再次起作用!但它不是静止的。

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

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

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

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

我想改变一下LIBS + = ...来指定它的静态库吗?

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

请帮忙吗?

编辑:问题解决了
问题是我们不需要Q_DECL_EXPORT和Q_DECL_IMPORT用于静态库! 这个粗略的虚幻文章没有明确提及。

1 个答案:

答案 0 :(得分:3)

问题解决了

问题是我们对静态库不需要Q_DECL_EXPORTQ_DECL_IMPORT!这个粗略的虚幻文章没有明确提及。

动态库需要

Q_DECL_EXPORTQ_DECL_IMPORT