Qt编写库时自动复制移动(make install)
作者:互联网
参考:
https://www.cnblogs.com/weicaiershang/p/14046177.html
在用Qt编写库文件工程时,我们一般在编译之后都要通过一个可执行程序(自己写的或者别人写的)来检验我们这个库文件是否符合需求。
而这个时候,我们一般需要跑到 build–xxx/release 文件夹下,手动拷贝lib,dll等文件到exe所依赖的地方。
这样拷贝来拷贝去,很影响时间和心情。
幸好,这种编译完成之后把库文件拷贝到别的文件夹的操作,有个专业名称叫 install。只需要在QtCreator中设置几步就可以实现。
1.在Pro文件加入如下代码:
win32 {
CONFIG(release, debug|release){
target.path = C:/myQtLib/lib/release
}
else{
target.path = C:/myQtLib/lib/debug
}
INSTALLS += target
# headers.path = C:/myQtLib/include
# headers.files = ./*.h
# INSTALLS += headers
}
2.在QtCreator这里设置 nmake 以及 install(release、debug需要分别设置)
3.然后每次编译,就会发现在对应的文件夹里有了库文件的副本。
假如只是想拷贝一个dll文件过去的话,可以设置pro文件的语句为:
win32 {
CONFIG(release, debug|release){
target.path = C:/myQtLib/lib/release
target.files = ./release/Threshold.dll
}
else{
target.path = C:/myQtLib/lib/debug
#假如想拷贝lib,dll,pdb等文件,直接令 target.files为空就行(不用设置);
#若只是某几个,需要像下面这样指定。
#target.files = ./release/Threshold.dll ./release/Threshold.lib
target.files = ./debug/Threshold.dll
}
INSTALLS += target
# headers.path = C:/myQtLib/include
# headers.files = ./*.h
# INSTALLS += headers
}
假如想同时复制到几个文件夹的话,只需要多定义一个变量就行
win32 {
CONFIG(release, debug|release){
target.path = C:/myQtLib/lib/release
target.files = ./release/Threshold.dll
#声明即定义
defaultTarget.path = C:/myQtLib/defult/lib/release
defaultTarget.files = ./release/Threshold.dll
}
else{
target.path = C:/myQtLib/lib/debug
#假如想拷贝lib,dll,pdb等文件,直接令 target.files为空就行(不用设置);
#若只是某几个,需要像下面这样指定。
#target.files = ./release/Threshold.dll ./release/Threshold.lib
target.files = ./debug/Threshold.dll
defaultTarget.path = C:/myQtLib/defult/lib/debug
defaultTarget.files = ./debug/Threshold.dll
}
INSTALLS += target defaultTarget
# headers.path = C:/myQtLib/include
# headers.files = ./*.h
# INSTALLS += headers
}
标签:files,target,lib,make,库时,dll,debug,release,Qt 来源: https://blog.csdn.net/joyopirate/article/details/111910876