我正在尝试为主机 mipsel-linux-uclibc 编译Evas。我正在使用我公司的旧二进制工具链来完成它。它是在2008年左右编制的,我现在有点困惑。看起来这个工具链缺少stat.h的struct stat中的以下字段:
unsigned long int st_mtimensec; /* Nsecs of last modification. */
我最接近的是:
__time_t st_mtime; /* Time of last modification. */
看起来这与uclibc有关。有一个简单的方法吗?
答案 0 :(得分:2)
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
,而不是{{ 1}}。最有益的做法可能是在Evas上游修复这些问题,以便其他用户将来不会遇到问题。