繁体   English   中英

在Visual Studio 2012项目中,如何避免将QT DLL复制并粘贴到可执行目录中?

[英]In a Visual Studio 2012 project, how can I avoid copying and pasting QT DLLs into executable directory?

我正在使用Visual Studio 2012构建QT 5.5应用程序。

注意,我使用CMake生成Visual Studio项目和解决方案文件。

如果我构建发布解决方案,则在运行.exe时出现错误,提示找不到dll。 我可以通过将所需的dll复制并粘贴到项目的Release目录中来解决此错误。

如何避免复制和粘贴所需的DLL?

我是否需要在Visual Studio中指定DLL和/或其路径?

有没有一种使用CMake来指定DLL和/或其路径的方法?

为了与您的应用程序一起提供Qt DLL,Qt本身附带的windeployqt工具可能就是您想要的。 它了解Qt的插件等,并可以为您复制相关的Qt DLL和插件。 根据您要尝试执行的操作,您可能希望将其作为构建后步骤,安装步骤或同时调用。 还有一个Mac OS X的macdeployqt工具,但是目前没有等效的linuxdeployqt工具。

为了照顾在任何非Qt DLL中的复制,可以使用CMake的BundleUtilities模块自动在可执行文件/库所依赖的任何DLL中进行复制。 与特定于Qt的部署工具不同, BundleUtilities适用于所有平台,但它对Qt插件一无所知,后者会在运行时动态加载。 再次,将BundleUtilities的相关功能用作后期构建和/或安装步骤。 对于Qt4, DeployQt4模块BundleUtilities内部调用BundleUtilities ,但是CMake没有为Qt5提供等效的模块,而是选择让Qt本身提供必要的支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM