【发布时间】:2013-10-15 07:15:36
【问题描述】:
我有一个使用 Qt 的 C++ 项目,它按预期工作。但是,问题是当我复制 执行到标准安装的操作系统(例如 Windows 或 Linux)的可执行文件 在执行时我收到 QtWidgets 或其他一些 Qt 库丢失错误。
我尝试参考 Qt 文档,但找不到解决方案或我所追求的示例。它与静态和动态构建有关...但找不到好的示例或教程。
我查看了教程http://www.qtcentre.org/wiki/index.php?title=Deploying_Qt_Applications,但这并不是最有效的解决方案。
基本上我希望系统包含所需的 Qt 库以及最终编译的文件。怎么办?
【问题讨论】:
-
只需将所需的 DLL 从 QT-bin 目录复制到与可执行文件相同的目录即可。如果使用mingw编译还提供了mingw所需的dll,见stackoverflow.com/questions/17377706/…
-
我没有在 Windows 上测试过,但在 Linux 上将 libQtCore.so(和其他库)复制到与可执行文件相同的目录仍然会引发错误。无论如何,在应用程序中我可以指定应用程序应该在其中查找这些库的文件夹吗?不知道为什么这些功能不像指定一个相对文件夹那么简单!
-
我不确定你想要达到什么目的。您提供的链接中已经介绍了我唯一推荐的内容。也许您可以指定您不喜欢那里的解决方案。
-
有
void QCoreApplication::addLibraryPath ( const QString & path )。在 Linux 中,库将被放置在系统范围的库文件夹中(以及系统范围包含文件夹的标题)。 -
我将尝试 addLibraryPath() 方法,看看是否会有所作为。基本上我正在寻找像 /bin/macdeployqt 提供的解决方案。它会自动将 Qt 库复制到主可执行文件之外的特定文件夹中,并且一切都是自动的。在上面的 URL 上,我不喜欢 helper bash 脚本。真的在寻找一个跨平台的解决方案。