>我正在尝试为主机mipsel-linux-uclibc编译Evas。我正在使用我公司的旧二进制工具链来做到这一点。它是在 2008 年左右编译的,我现在有点坚持下去。看起来这个工具链在 stat.h 的结构统计信息中缺少以下字段:
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太旧而没有这些权利,你可以尝试将它们黑客入侵到标题中(可能只有一个time_t st_mtime;
成员,旁边应该有一个填充成员,纳秒应该在那里)。重要的是,您必须保持成员的布局(它们在结构中的偏移量)相同,否则事情会严重损坏。
一个更好的问题可能是为什么 Evas 不能移植到较旧的(POSIX-2008 之前)系统,以及为什么它对纳秒字段使用了错误的名称(正确的名称是 st_mtim.tv_nsec
,而不是 st_mtimensec
。最有益的做法可能是在 Evas 的上游获取这些修复程序,以便其他用户将来不会遇到问题。