Qt qmake:如何复制.dll/.so';是到输出目录吗?
我有一个构建dll/共享库的Qt项目和另一个测试库的Qt项目Qt qmake:如何复制.dll/.so';是到输出目录吗?,qt,qmake,Qt,Qmake,我有一个构建dll/共享库的Qt项目和另一个测试库的Qt项目 有没有什么好办法让qmake将dll复制到测试项目的输出文件夹中?这可能不是一个“好”办法,但可能会奏效 QMAKE\u POST\u LINK+=复制dll的一些shell命令我使用安装(QMAKE文档)将此添加到您的pro文件: target.path = ../testProject/$$TARGET INSTALLS += target 对于QextSerialPort库,这是可行的。支持Qt的调试和发布模式 QMAKE\
有没有什么好办法让qmake将dll复制到测试项目的输出文件夹中?这可能不是一个“好”办法,但可能会奏效
QMAKE\u POST\u LINK+=复制dll的一些shell命令
我使用安装(QMAKE文档)将此添加到您的pro文件:
target.path = ../testProject/$$TARGET
INSTALLS += target
对于QextSerialPort库,这是可行的。支持Qt的调试和发布
模式
QMAKE\u POST\u链接也可以工作,但如果您试图立即运行应用程序,则会抛出一个错误:那么您的.dll将被复制得太晚QMAKE\u PRE\u LINK
确实及时复制了它。您可以使用Qt 4中所述的DESTDIR
关键字。只有在运行make install
build步骤时,这才有效。这将责任推到了测试项目上,要了解测试它的项目(这是反向的,反之亦然),请将可执行文件复制到DESTDIR
(DLL可能位于的位置)。它更适合我的情况,谢谢你的提示。
# 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
}
QMAKE_POST_LINK += $$QMAKE_COPY $$quote("yourSrcDir\your.dll") $$quote($$IN_PWD) $$escape_expand(\\n\\t)