最近项目要添加一个功能,需要把机器的数据打包生成一个html文件。为啥不是txt或者是csv或者是json了?因为客户看不懂。搞成花里胡哨的网页版客户觉得好,给钱才痛快。
所以需要用C++生成html文件的需求。
之前也做过类似的功能不过是用C#,C#也是简介生成html的。C#调用python,python生成html文件。C++其实也是可以这么做的,不过有一个小小的问题,就是需要搭建python环境。开发者搭建环境也就是分分钟的事,可是机器出厂的时候代码越简单越好,最好都用C++写,环境比较简单。
今天的主角登场了,google-ctemplete。google的一个开源模板库。BSD-3-Clause License。不用担心版权。
在Windows下编译,首先需要注意的是,你先要用过python生成两个头文件,要不会提示编译不过。
下载解压完是这样的。其中有个.sln如果有VS编译环境可以直接打开。
打开以后
现在编译时不通过的,因为你缺少两个头文件。
如何生成这两个头文件?
参考了这位老哥的博客
ctemplate在Windows下的编译_itas109的专栏-CSDN博客
不过有点问题,但是给我提供了思路。
解压完打开这个文件夹。
里面有两个python文件和两个config文件。这两个config文件就是生成代码的状态机,(编译完请教了我领导才知道,原来还有这门技术,据说编译器就是这么玩的)
如何生成头文件了?
在当前文件目录下打开cmd或者powershell
输入这两行代码
python .\generate_fsm.py .\htmlparser_fsm.config > .\htmlparser_fsm.h
python .\generate_fsm.py .\jsparser_fsm.config > .\jsparser_fsm.h
就生成了htmlparser_fsm.h jsparser_fsm.h这两个文件,然后再编译就好了。
完美编译过。