我有一个构建 dll/共享库的 Qt 项目和另一个测试库的 Qt 项目。
有什么好方法可以让 qmake 将 dll 复制到测试项目的输出文件夹中?
将此添加到您的专业文件中:
target.path = ../testProject/$$TARGET
INSTALLS += target
# 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
确实及时复制。
我使用安装,就像这样。(qmake 文档)
这可能不是一个“好”的方式,但它可能会奏效。
QMAKE_POST_LINK += some shell command to copy the dll
您可以使用Qt 4中的qmake 文件文档DESTDIR
中所说的关键字。
QMAKE_POST_LINK += $$QMAKE_COPY $$quote("yourSrcDir\your.dll") $$quote($$IN_PWD) $$escape_expand(\\n\\t)