封装.a静态库:
打开cmd
cd到.c文件所在的文件目录
gcc -c xxx.c(注意:如果gcc版本过低,可能需要改成gcc -c xxx.c -std=c99)
ar -rc libxxx.a xxx.o(此时已封装好)
gcc main.c libxxx.a -o exename(连接主函数进行测试)
exename(能正常运行表明静态库没有问题)
封装.lib静态库:
新建静态库项目
将.c、.h文件放入(似乎不放.h也可以)
属性中设置 不使用预编译头
点击工具栏的生成
将lib文件复制到main函数所在的目录,或者引入静态库时填写绝对路径
main函数中加入一行代码引入静态库:#pragma comment(lib, "xxx.lib")
执行
以上是普通的静态库封装流程C语言编译器调用是没问题的,但如果需要与单片机结合,还要考虑静态库格式,如Windows封装的静态库文件格式是PE格式,UNIX、LINUX封装的静态库是ELF格式(readelf -a 文件名+后缀)可查看文件格式,此外还要考虑gcc参数问题。
本博主就踩坑了,最后使用的linux下arm-none-eabi-gcc封装的.a静态库和keil5打包的lib库嵌入到单片机上,爆哭~~~~~