QT 创建使用动态库

一、创建并编译库

创建项目,选择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
        }
    }
}

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值