2

我正在尝试为主机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有关。有没有简单的方法可以解决这个问题?

4

1 回答 1

2

struct stat应该包含一个成员并且应该struct timespec st_mtim;包含. 如果您的 uClibc 太旧而无法拥有这些权利,您可以尝试将它们破解到标题中(可能只有一个成员和一个填充成员在它旁边应该是纳秒的地方)。重要的是您必须保持成员的布局(它们在结构中的偏移量)相同,否则事情会严重破坏。stat.h#define st_mtime st.mtim.tv_sectime_t st_mtime;

一个更好的问题可能是为什么 Evas 不能移植到较旧的(POSIX-2008 之前)系统,以及为什么它对纳秒字段使用错误的名称(正确的名称是st_mtim.tv_nsec,而不是st_mtimensec。最有益的行动方案可能是在 Evas 的上游获取这些修复程序,以便其他用户将来不会遇到问题。

于 2013-01-28T19:24:26.930 回答