12

我有一个构建 dll/共享库的 Qt 项目和另一个测试库的 Qt 项目。

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

4

6 回答 6

8

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

target.path = ../testProject/$$TARGET
INSTALLS += target 
于 2009-11-16T08:51:38.120 回答
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确实及时复制。

于 2010-05-17T23:49:06.833 回答
4

我使用安装,就像这样。(qmake 文档)

于 2009-11-16T07:33:28.373 回答
2

这可能不是一个“好”的方式,但它可能会奏效。

QMAKE_POST_LINK += some shell command to copy the dll

于 2009-11-16T07:23:26.910 回答
2

您可以使用Qt 4中的qmake 文件文档DESTDIR中所说的关键字。

于 2013-06-15T11:41:16.720 回答
1
QMAKE_POST_LINK += $$QMAKE_COPY $$quote("yourSrcDir\your.dll") $$quote($$IN_PWD) $$escape_expand(\\n\\t)
于 2019-10-06T18:31:20.673 回答