我有一个Qt项目,它构建一个dll /共享库和另一个测试库的Qt项目 .
有没有什么好办法让qmake将dll复制到测试项目的output-folder?
# 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 模式 .
debug_and_release
QMAKE_POST_LINK 也可以,但是如果你试图立即运行应用程序会抛出错误:然后你的.dll将被复制得太晚 . QMAKE_PRE_LINK 会及时复制它 .
QMAKE_POST_LINK
QMAKE_PRE_LINK
这可能不是一个“好”的方式,但它可能会成功 .
QMAKE_POST_LINK += some shell command to copy the dll
我使用INSTALLS,like so.(qmake文档)
您可以使用 DESTDIR 关键字,如Qt 4中的qmake files documetation所述 .
DESTDIR
将其添加到您的专业档案:
target.path = ../testProject/$$TARGET INSTALLS += target
5 回答
这适用于QextSerialPort库 . 支持Qt的
debug_and_release
模式 .QMAKE_POST_LINK
也可以,但是如果你试图立即运行应用程序会抛出错误:然后你的.dll将被复制得太晚 .QMAKE_PRE_LINK
会及时复制它 .这可能不是一个“好”的方式,但它可能会成功 .
QMAKE_POST_LINK += some shell command to copy the dll
我使用INSTALLS,like so.(qmake文档)
您可以使用
DESTDIR
关键字,如Qt 4中的qmake files documetation所述 .将其添加到您的专业档案: