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

时间:2009-11-16 07:01:36

标签: qt qmake

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

有没有什么好办法让qmake将dll复制到测试项目的output-folder?

6 个答案:

答案 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)