【问题标题】:How to use static library in Qt 5.2?如何在 Qt 5.2 中使用静态库?
【发布时间】:2014-01-24 18:04:18
【问题描述】:

我最近下载了qt。

我想创建一个独立的 exe, 但我不知道我能做什么。

在Qt5.2中,文件夹“(Qt)\lib”是存在的,但我不能在Qt Creator中使用它。

那么,我应该从源代码构建, 或者配置Qt Creator并使用“lib***.a”?

有什么想法吗?

环境: MinGW-32 4.8.1(TDM) / Windows 7

【问题讨论】:

  • "文件夹 "(Qt)\lib" 存在,但我不能在 Qt Creator 中使用它。 -> 你这是什么意思?你到底面临什么问题?另外,“我应该从源代码构建”是什么意思? Qt,你想从源代码构建什么?
  • licensing of Qt 可能会禁止或阻止静态链接(至少对于分布式软件而言)。另请参阅this answer 并阅读有关LGPL 的更多信息;所以你不应该浪费时间去尝试(并将你的程序动态链接到 Qt)。
  • @BasileStarynkevitch:许可考虑适用于任何软件。毕竟这是一个编程站点,而不是一般许可。 :-)
  • @LaszloPapp 抱歉英语不好。我搜索了很多东西,并设置了 CONFIG+=static,但它总是需要 QtCore.dll。我需要一个没有 QtCore.dll 的 exe(与 libQtCore.a 链接)。
  • @IshiTatsuyuki 要扩展 Basile 的评论,请注意用户(即获取静态链接 .exe 的人)必须能够更改 LGPL 部分,即 Qt 库。出于实际目的,这意味着您必须准备好将您的源代码(许可证并不重要)提供给获得静态链接 .exe 的任何人,以便他们可以通过修改(较新版本,已修复错误,等等)重新构建它) LGPL Qt。免责声明:IANAL

标签: c++ qt qt-creator qmake


【解决方案1】:

您似乎已经尝试过CONFIG+=static,但这不适用于此用例。当您想在构建结束后使用构建 您的 库时使用它是静态的。

这里不是这种情况,因为您已经有可用的静态 Qt 库,所以您希望将它们静态链接到您的可执行文件。

你需要在你的 qmake 项目文件中使用它:

LIBS += -L/path/to/the/static/QtCore -lQtCore

您也可以使用,尽管这会降低构建系统在不同平台上的可移植性:

LIBS += /path/to/the/statis/QtCore/libQtCore.a

【讨论】:

  • 我尝试将它添加到 pro 文件中,但文件仍然是 48KB 并且不链接 QtCore。 Qt 创建者看起来像知道 lib 目录。我只是想让 Qt 创建者使用这些库。
  • @IshiTatsuyuki:你可能做错了你没有与我们分享的事情。这应该可行...提供更多上下文...
  • 我添加了 qmake 参数“CONFIG+=static”。使用“全部重建”,但似乎没有链接任何库(我添加了 zlib)。我在 LIB+= 之前添加了“win32:”。错了吗?
  • @IshiTatsuyuki:你完整阅读了这篇文章吗?它明确写道你应该不使用CONFIG+=static。
  • 没什么变化...仍然是 48KB 并且需要 Qt5Core/Qt5Cored.dll。
猜你喜欢
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
相关资源
最近更新 更多