Android内核编译错误 - 从类型'kuid_t'分配类型'uid_t'时出现不兼容的类型

时间:2015-05-09 18:37:17

标签: android compiler-errors linux-kernel android-source android-kernel

我在尝试编译Android内核时遇到以下错误,我不知道如何更改这部分代码来解决错误。

NSLog(@"err=%s", sqlite3_errmsg(database)); 

我正在使用https://android.googlesource.com/kernel/common.git/+/android-3.18中的3.18内核。 我使用make menuconfig生成了一个默认的.config,然后我合并了android / configs文件夹中包含的Android基础和推荐的配置。在做一个make bzImage时我得到了上面的错误。

我正在构建运行Ubuntu 14.10和gcc 4.9.1的ARM机器(用于ARM)。

封闭函数的代码是:

  CC      net/netfilter/xt_IDLETIMER.o
net/netfilter/xt_IDLETIMER.c: In function ‘reset_timer’:
net/netfilter/xt_IDLETIMER.c:360:16: error: incompatible types when assigning to type ‘uid_t’ from type ‘kuid_t’
     timer->uid = sk->sk_socket->file->f_cred->uid;
                ^
scripts/Makefile.build:257: recipe for target 'net/netfilter/xt_IDLETIMER.o' failed
make[2]: *** [net/netfilter/xt_IDLETIMER.o] Error 1
scripts/Makefile.build:402: recipe for target 'net/netfilter' failed
make[1]: *** [net/netfilter] Error 2
Makefile:937: recipe for target 'net' failed
make: *** [net] Error 2

1 个答案:

答案 0 :(得分:2)

我认为以下功能可以帮助您:

 static inline uid_t __kuid_val(kuid_t uid)
 {
         return uid.val;
 }

您可以在include/linux/uidgid.h

中找到它