我希望某些Linux死硬的用户能够回答我在使用时间函数时应该如何编写可移植(POSIX)代码。
错误:字段‘st_atim’有不完整的类型‘timespec’,结构类型为st_atim;
错误:“:time”尚未声明
等等。
因此,对于与许多第三方依赖项链接的C++设置,确保所有内容都继续编译w.r.t的正确方法是什么。包括时间?我是否应该将系统的时间包括在我要编译的特定平台上?我应该检查所有可能需要时间的目标吗?前面是跳舞的大象和五彩纸屑。
更新:正如下面的评论所暗示的那样,这个问题似乎与C++的版本有关。从那时起,我将gcc更新为8.3.0 (从5.4),我已经放弃了在c++11下支持更老的c++11兼容性。在更新和重建所有第三方包(包括ffmpeg)之后,我现在不再有我描述的问题了,但这并不意味着它是固定的,因为它不能再发生在其他人身上。事实上,我认为问题主要在于ffmpeg如何在旧的编译器上编译,并且没有显式地请求c++11,所以我将它保留下来。
发布于 2019-03-26 00:35:01
我建议您考虑Hinnant的date库,该库已被接受为下一个版本的C++标准库(C++20):
https://github.com/HowardHinnant/date
它应该在任何支持C++11的平台上工作。
标准版本记录在这里:https://en.cppreference.com/w/cpp/chrono
https://stackoverflow.com/questions/55348072
复制相似问题