qmake:如何将.dll / .so复制到输出目录?

问题描述 投票:11回答:6

我有一个构建dll / shared-library的Qt项目和另一个测试该库的Qt项目。

有什么好方法让qmake将dll复制到测试项目的输出文件夹中?

qt qmake
6个回答
7
投票

将此添加到您的专业文件:

target.path = ../testProject/$$TARGET
INSTALLS += target 

8
投票
# Copy the dynamic library.
win32 {
   QMAKE_PRE_LINK=copy /Y lib\qextserialport\src\build\qextserialportd.dll debug\ & copy /Y lib\qextserialport\src\build\qextserialport.dll release\
}
else {
   # TODO: Unices
}

这适用于QextSerialPort库。支持Qt的debug_and_release模式。

QMAKE_POST_LINK也可以,但是如果您尝试立即运行该应用程序,将抛出错误:.dll将被复制得太晚。 QMAKE_PRE_LINK确实会及时复制。


4
投票

我使用INSTALLS,like so.(qmake文档)


2
投票

这可能不是一个好方法,但是可以解决问题。

QMAKE_POST_LINK += some shell command to copy the dll


1
投票

您可以使用Qt 4中DESTDIR中所述的qmake files documetation关键字。


1
投票
QMAKE_POST_LINK += $$QMAKE_COPY $$quote("yourSrcDir\your.dll") $$quote($$IN_PWD) $$escape_expand(\\n\\t)
© www.soinside.com 2019 - 2024. All rights reserved.