解决Linux环境下安装muduo库报错muduo-master/muduo/base/Date.cc:58:9: error: invalid use of incomplete type ‘const struct tm’
在一台新的虚拟机上安装muduo网络库时遇到了一个编译错误:
第一反应时安装依赖的boost库时出现错误,按照网络上的各种方法重新安装均无法解决。因为muduo库是一个使用十分广泛的网络库,非常多人经过长时间使用均未出现类似的编译阶段问题,所以一直认为是自己的虚拟机配置以及依赖的安装问题。
尝试解决无果后我打开报错的文件查看原因,报错提示是代码中关于日期时间的部分出现了incomplete type,也就是其中的tm结构体,显示这是一个无效的使用。
我阅读源码发现这是作者希望使用c库函数中的tm结构体来表示时间,但是在源码的Date.h中却没有引入相应的头文件。
于是我在、usr/include/目录下找到关于时间的头文件time.h,将其引入
之后再在muduo目录下进行编译即可通过
./build.sh
再进行安装
./build.sh install