ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

QT 创建使用动态库

2022-02-22 17:02:01  阅读:162  来源: 互联网

标签:QT .. 创建 x64 release PWD lib debug 动态


一、创建并编译库

创建项目,选择Library下的C++ Library

2.选择shared library

3.此时创建的项目的.pro文件如下:

QT -= gui
TEMPLATE = lib
DEFINES += Data_LIBRARY
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
library.cpp
HEADERS += \
Data_global.h \
library.h
unix {
target.path = /usr/lib
INSTALLS += target
}

创建Qt动态库的时候,会自动创建一个xx_global.h的文件,这个文件主要是为了Windows平台下的库调用时需要符号导出才能使用而准备的。一般情况下,我们也可以不要。当然了,如果你直接写在头文件中也行的。

4.可设置生成库的位置

win32:{
    !contains(QT_ARCH, i386):{
        CONFIG(release, debug|release):{
            DESTDIR = $$PWD/../lib/win/x64/release
        }
        else:CONFIG(debug, debug|release):{
            DESTDIR = $$PWD/../lib/win/x64/debug
        }
    }
    else:{
        CONFIG(release, debug|release):{
            DESTDIR = $$PWD/../lib/win/x86/release
        }
        else:CONFIG(debug, debug|release):{
            DESTDIR = $$PWD/../lib/win/x86/debug
        }
    }
}

5.构建程序即可得到.a和.dll文件

.a静态库 编译程序时使用  静态库的使用需要和头文件.h一同使用。

.dll动态库  运行程序时使用

补充:

静态库:.a为MinGw编译器编译的库     .lib为MSVC编译器编译的库

二、添加库文件

1.右击文件名称或者.pro程序,选择添加库。

 2.选择外部库 

 

 3.点击浏览选择库,去掉Windows下的选项,如果只在Windows下使用,将平台下的Linux和Mac取消勾选。

  4.点击完成

  5.生成如下代码

 

win32:{  #Windows下
     !contains(QT_ARCH, i386):{   #x64
        CONFIG(release, debug|release):{    #release
            DESTDIR = $$PWD/../bin/win/x64/release
 
            LIBS += -L$$PWD/../lib/win/x64/debug/ -lShareLib
        }
        else:CONFIG(debug, debug|release):{   #debug
            DESTDIR = $$PWD/../bin/win/x64/debug
 
            LIBS += -L$$PWD/../lib/win/x64/debug/ -lShareLib
        }
    }
    else:{   # x86
        CONFIG(release, debug|release):{   #release
            DESTDIR = $$PWD/../bin/win/x86/release
            LIBS += -L$$PWD/../lib/win/x86/release/ -lShareLib
        }
        else:CONFIG(debug, debug|release):{   #debug
            DESTDIR = $$PWD/../bin/win/x86/debug
 
            LIBS += -L$$PWD/../lib/win/x64/debug/ -lShareLib
        }
    }
}
 
 
unix:!macx{ #Linux下
    !contains(QT_ARCH, i386):{   #x64
        CONFIG(release, debug|release):{   #release
            DESTDIR = $$PWD/../bin/linux/x64/release
            LIBS += -L$$PWD/../lib/linux/x64/release/ -lShareLib
        }
        else:CONFIG(debug, debug|release):{   #debug
            DESTDIR = $$PWD/../bin/linux/x64/debug
            LIBS += -L$$PWD/../lib/linux/x64/debug/ -lShareLib
        }
    }
    else:{              # x86
        CONFIG(release, debug|release):{  #release
            DESTDIR = $$PWD/../bin/linux/x86/release
            LIBS += -L$$PWD/../lib/linux/x86/release/ -lShareLib
        }
        else:CONFIG(debug, debug|release):{  #debug
            DESTDIR = $$PWD/../bin/linux/x86/debug
            LIBS += -L$$PWD/../lib/linux/x86/debug/ -lShareLib
        }
    }
}

标签:QT,..,创建,x64,release,PWD,lib,debug,动态
来源: https://blog.csdn.net/m0_67254672/article/details/123072198

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有