当前位置: 代码迷 >> 综合 >> QT 静态链接库和动态链接库
  详细解决方案

QT 静态链接库和动态链接库

热度:39   发布时间:2024-02-12 23:35:51.0

qt       windows            linux

dll          .dll                       .so

lib 对应 a    archiver的缩写 为静态库,是好多个.o合在一起,用于静态连接

dll 对应 so   share object 共享库      

lib文件:(依据编译器)    MSVC编译器是生成.lib 文件,文件名不变。 mingw编译器生成.a 文件,此外会在目标名称(即在.pro 文件中的TARGET)前面加lib

dll文件:(依据平台)   windows平台是.dll 文件,unix平台是.so

 

静态链接库设计导出类,包括ui窗口类,对话框类。

在.pro文件中

TEMPLATE = lib
CONFIG += staticlib

TARGET = 

编译静态链接库时,不管是debug还是release版本,编译生成都是相同的文件名,并不会为debug版本自动添加一个字母“d”.

但是在debug或者release版本编译应用程序时,需要使用相应版本库文件。所有需要手动将debug版本的静态库更名,即在文件名后加上字母“d”,如 myStaticLib.lib => myStaticLibd.lib .

方法是:

1.在应用程序的源程序目录下新建一个include文件夹,把.h头文件和.lib静态链接库文件都拷贝过去。

2.在项目管理目录树右键,选择“add library”,选择库类型“external library”(即外部库),连接类型必须选择"static",因为是静态库。

 勾选add "d"suffix for debug version.使在debug模式下,应用程序自动调用debug版本的库文件。

 

  相关解决方案