找到一个库
https://github.com/troldal/OpenXLSX
linux下库编译
修改cmakelist.txt文件
设置安装路径 添加这句话
set(CMAKE_INSTALL_PREFIX "/root/gitlab/xdevice-platform-newbranch_test/xdevice-platform/thirdparty/libopenxlsx")
mkdir build
cd build
cmake ..
cmake --build . --target OpenXLSX --config Release
编译 这个编译要点时间
make -j8
安装
make install
windows下的编译【编译成功】
配置编译生成的第三方库的安装路径
在cmakelist.txt中 添加这句话
set(CMAKE_INSTALL_PREFIX "D:/zjf_study_record/C++_read_excel/1/OpenXLSX/333")
保存
右键cmakelist.txt 选中用cmake-gui打开、配置编译器
确保编译器路径已经添加到环境变量 要求mingw版本大于7,不然编译会失败
查看gcc --version 版本的指令
第一次点击cmake-gui里面configure 会提示选择编译器,系统环境变量配置好,就选default就可以了



点击generate 相当于执行了cmake
cmake配置文件
编译
mingw32-make.exe -j8
报错
[ 43%] Linking CXX static library ..\..\..\output\libbenchmark.a
[ 43%] Built target benchmark
Makefile:134: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

问题定位了
mingw的版本需要用7以上的,在readme里面也讲了版本需求
我将环境变量设置到qt5.12.12 使用的mingw版本大于7 编译安装都成功了。
安装
mingw32-make.exe install

使用
静态库引入与编译
编译cmake
需要是C++17的标准,cmakelist修改配置
set ( CMAKE_CXX_FLAGS "-g -std=c++17" )
包含头文件
include_directories ( $ENV{XPL_THIRDPARTY_DIR}/libopenxlsx/include/OpenXLSX)
导入数据库
add_library ( openxlsx STATIC IMPORTED )
set_property (TARGET openxlsx PROPERTY IMPORTED_LOCATION $ENV{XPL_THIRDPARTY_DIR}/libopenxlsx/lib/libOpenXLSX.a)
target_link_libraries ( ${CMAKE_PROJECT_NAME} PRIVATE pthread openxlsx)
具体API调用就看example里面的函数就可以了。很好懂的
API用法
参考example里面的代码,很好懂的