libxls作为开源库,支持在Linux C/C++ 环境下解析(读)xls文件,github提供了源码:
https://github.com/libxls/libxls
但是github的源码需要一堆辅助工具,才能够编译出libxls的C静态库,因此琢磨了下手动编译libxls的静态库/动态库方法,可以摆脱辅助工具缺失乃至版本问题导致的抓狂,尤其适合不方便联网的内网开发环境。
将fuzz、src、include目录下所有文件拷贝到一个目录下,修改*.c和*.h文件中指定的include文件路径为当前目录下
然后将locale.c、endian.c、fuzz_xls.c、ole.c、xls.c、xlstool.c编译成相应的.o文件
locale.h文件中需要添加语句“#include<stddef.h>”
gcc -c locale.c
gcc -c endian.c
gcc -c ole.c
gcc -c xls.c
gcc -c xlstool.c
gcc -c fuzz_xls.c -std=c99 (fuzz_xls.c源文件需要指定c99标准)
选择test.c编译成.o文件
gcc -c test.c
将所有.o文件链接在一起生成可执行demo程序
gcc locale.o endian.o fuzz_xls.o ole.o xls.o xlstool.o test.o -o demo
也可以将locale.o、endian.o、fuzz_xls.o、ole.o、xls.o、xlstool.o编译成静态库
ar -rc libxls.a locale.o en