我有一个Qt项目,它构建一个dll /共享库和另一个测试库的Qt项目。
有没有什么好办法让qmake将dll复制到测试项目的output-folder?
答案 0 :(得分: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
会及时复制它。
答案 1 :(得分:7)
将此添加到您的专业档案:
target.path = ../testProject/$$TARGET
INSTALLS += target
答案 2 :(得分:4)
我使用INSTALLS,like so.(qmake文档)
答案 3 :(得分:2)
这可能不是一种“好”的方式,但它可以解决问题。
QMAKE_POST_LINK += some shell command to copy the dll
答案 4 :(得分:1)
您可以使用DESTDIR
关键字,如Qt 4中的qmake files documetation所述。
答案 5 :(得分:1)
QMAKE_POST_LINK += $$QMAKE_COPY $$quote("yourSrcDir\your.dll") $$quote($$IN_PWD) $$escape_expand(\\n\\t)