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

时间:2011-06-08 21:48:28

标签: qt post-build-event

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

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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

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