在Windows平台,如果采用MinGw编译静态库,则编译后的文件后缀为.a 。
例如:libHtDbHelper.a
现在介绍在一个Qt Creator创建的Widgets应用程序HtDbUI中,引用该静态库。
测试环境为Windows 10 ,Qt Creator创建应用程序时,采用CMake构建系统。使用MinGw 64位构建:

1、在HtDbUI项目的根目录下,创建两个文件夹:include和lib 。
把静态库libHtDbHelper.a 复制到 lib文件夹下。
把头文件HtDbHelper.h 复制到include文件夹下。
2、打开HtDbUI的CMakeList.txt文件。
添加以下代码:
add_library(HtDbHelper STATIC IMPORTED)
set_target_properties( HtDbHelper PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/lib/libHtDbHelper.a )
target_include_directories(HtDbUI PRIVATE ${PROJECT_SOURCE_DIR}/include/)
target_link_libraries(HtDbUI PUBLIC HtDbHelper )
3、现在可以在HtDbUI的代码中添加引用:
#include<HtDbHelper.h>
然后可以开始使用HtDbHelper中类或者结构等了。
另外:
如果使用的是MSVC 2019编译静态库,编译后的文件后缀名为.lib
对CMake文件的一些注释:
1、通过import方式引入外部库(即已在外部编译生成了.so, .a库文件),所以add_library命令要指明"IMPORTED"
2、需要指明是动态链接库还是静态链接库,所以add_library命令要指明 "SHARED" 或者 "STATIC"
3、需要指明库文件的具体位置,所以在set_target_properties命令中设置
4、最后对二进制文件HtDbUI进行库文件链接时,通过target_link_libraries命令指明库文件,且通过target_include_directories命令指明相应的库头文件