Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt qmake:如何复制.dll/.so';是到输出目录吗?_Qt_Qmake - Fatal编程技术网

Qt qmake:如何复制.dll/.so';是到输出目录吗?

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\

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


有没有什么好办法让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)