qt - 如何在不使用 QtCreator 的情况下将 dll 文件复制到 Qt 中的输出目录?

标签 qt post-build-event

我有一个基于 Qt 的应用程序,它使用许多在项目外部构建的 dll。这些 dll 被 checkin 源代码,因为我们不会非常频繁地重建它们(它们需要几个小时才能构建,我不希望它们出现在主项目中)。我想在构建完成后将这些 dll 复制到适当的目录(发布、调试)中。有没有办法将该复制步骤合并到 .pro 文件中,以便将复制传播到使用该代码的每台计算机?我在 this 等地方找到的建议是使用构建后步骤并构建批处理文件,但构建后步骤不在计算机之间共享(它们存储在 .pro.user 文件中,该文件是特定于计算机的)。

我尝试过使用类似的东西:

Debug:POST_TARGETDEPS = ../../Dir1/Dir2/bin/mylib.dll

但这不会将文件复制到调试目录或 DESTDIR 目录中。

最佳答案

您将需要使用INSTALLS关键字,然后确保在构建时执行make install

dlls_to_move.path = $$DESTDIR
dlls_to_move.files += ../../Dir1/Dir2/bin/mylib.dll
INSTALLS += dlls_to_move

您可以在QMake documentation中找到有关安装的更多信息。 。

关于qt - 如何在不使用 QtCreator 的情况下将 dll 文件复制到 Qt 中的输出目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285687/

相关文章:

c# - 如何从 C# 项目的构建事件访问 Visual Studio 解决方案级平台?

c# - 构建前和构建后事件参数

visual-studio - Visual Studio - 构建后事件 - 抛出错误

visual-studio - Visual Studio - 合并 .cs 文件的构建后事件

c++ - 读取 anchors.fill 定义的 QML 元素大小 : parent

sqlite - 数据库表不存在,但在尝试创建它时和之后都存在

c++ - 始终将焦点策略放在隐藏的小部件上? (Qt C++)

qt - 删除 QLabel 周围的多余空间

qt - Clion 不会索引自动生成的 ui 头文件

visual-studio-mac - Visual Studio for Mac 中的预生成/生成后事件