我正在尝试编译 Evas对于主机 mipsel-linux-uclibc。我正在使用我公司的旧二进制工具链来完成此操作。它是在 2008 年左右编写的,现在我还坚持着它。看起来这个工具链在 stat.h 的 struct stat 中缺少以下字段:
unsigned long int st_mtimensec; /* Nsecs of last modification. */
我拥有的最接近的东西是:
__time_t st_mtime; /* Time of last modification. */
看起来这与uclibc有关。有没有简单的方法可以解决这个问题?
最佳答案
struct stat
应该包含成员struct timespec st_mtim;
并且stat.h
是>应该为#define st_mtime st.mtim.tv_sec
。如果您的 uClibc 太旧而无法正确使用这些内容,您可以尝试将它们侵入 header (可能只有一个 time_t st_mtime;
成员和旁边应该是纳秒的填充成员)。重要的是,您必须保持成员的布局(它们在结构中的偏移量)相同,否则事情将会严重破坏。
一个更好的问题可能是为什么 Evas 不能移植到较旧的(POSIX-2008 之前的)系统,以及为什么它对纳秒字段使用错误的名称(正确的名称是 st_mtim.tv_nsec
,而不是 st_mtimensec
。最有益的行动方案可能是在 Evas 中获取这些上游修复,这样其他用户将来就不会遇到问题。
关于c - st_mtimensec 在 struct stat 中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14569330/