[英]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.