其他分享
首页 > 其他分享> > Qt编写库时自动复制移动(make install)

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