静态库是在编译时链接,windows下后缀为.lib,Linux下为.a,是多个.o文件打包的结果,库的使用是用.h头文件引入符号,先让编译通过,在链接时再组合在一起
gcc -c *.c -I ../include/ #编译成.o 文件
ar rcs libcalc.a *.o
nm libcalc.a # 查看库文件
#用的时候
gcc main.c -o app -I include/ -L lib/ -lcalc
准备好cJSON.c cJSON.h文件,和测试程序main.c
# 编译静态库
gcc -c cJSON.c
ar rcs libcjson.a cJSON.o
# 使用静态库 -static是静态库
gcc main.c -o jsonapp -L. -lcjson -static
windows下使用visual studio和Qt Creator两个IDE试验
新建一个静态库工程
添加现有项
删除多余的文件,仅保留cJSON的头文件和源文件
出现预编译错误,需要修改配置
右键.c文件 属性 设置一下预编译头
F6 生成一下解决方案,就可以在Debug和Release文件夹里找到lib文件,Debug下还有pdb文件
接下来在VS中使用lib和pdb,在qt里使用lib
新建一个main.cpp,粘贴进去测试代码,添加头文件
配置静态库路径
Qt默认使用的是mingw的编译器,所以vs的库不可以直接用
Qt新建一个静态链接库项目
把cJSON的源文件和头文件添加到项目,删除多余的文件,编译
新建一个窗口项目,使用ui文件,添加cJSON.h到项目
在pro文件中添加:
LIBS +=-L$$PWD -lqcjson