【发布时间】:2009-11-16 07:01:35
【问题描述】:
我有一个构建 dll/共享库的 Qt 项目和另一个测试库的 Qt 项目。
有没有什么好办法让 qmake 将 dll 复制到测试项目的输出文件夹中?
【问题讨论】:
我有一个构建 dll/共享库的 Qt 项目和另一个测试库的 Qt 项目。
有没有什么好办法让 qmake 将 dll 复制到测试项目的输出文件夹中?
【问题讨论】:
将此添加到您的专业文件中:
target.path = ../testProject/$$TARGET
INSTALLS += target
【讨论】:
make install 构建步骤时有效
# 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 确实及时复制。
【讨论】:
我使用 INSTALLS,like so.(qmake 文档)
【讨论】:
这可能不是一个“好”的方法,但它可能会奏效。
QMAKE_POST_LINK += some shell command to copy the dll
【讨论】:
您可以使用 DESTDIR 关键字,就像 Qt 4 中的 qmake files documetation 中所说的那样。
【讨论】:
DESTDIR(可能是 DLL 所在的位置)。它更适合我的情况,感谢您的提示。
QMAKE_POST_LINK += $$QMAKE_COPY $$quote("yourSrcDir\your.dll") $$quote($$IN_PWD) $$escape_expand(\\n\\t)
【讨论】: