0

我正在编译Android模拟器的Linux源代码。当我执行make命令(用于构建和交叉编译linux源代码)时,出现以下错误“pmem.c”文件。错误与“pmem.c”编译Android的源代码为Android

[email protected]:~/common# make 
CHK  include/linux/version.h 
CHK  include/linux/utsrelease.h 
SYMLINK include/asm -> include/asm-x86 
CALL scripts/checksyscalls.sh 
CHK  include/linux/compile.h 
CC  drivers/misc/pmem.o 
drivers/misc/pmem.c:441: error: conflicting types for ‘phys_mem_access_prot’ 
/home/preetam/common/arch/x86/include/asm/pgtable.h:383: note: previous declaration of   ‘phys_mem_access_prot’ was here 
drivers/misc/pmem.c: In function ‘flush_pmem_file’: 
drivers/misc/pmem.c:805: error: implicit declaration of function ‘dmac_flush_range’ 
drivers/misc/pmem.c: In function ‘pmem_setup’: 
drivers/misc/pmem.c:1265: error: implicit declaration of function ‘ioremap_cached’ 
drivers/misc/pmem.c:1266: warning: assignment makes pointer from integer without a cast 
make[2]: *** [drivers/misc/pmem.o] Error 1 
make[1]: *** [drivers/misc] Error 2 
make: *** [drivers] Error 2 
[email protected]:~/common# 

如何解决此错误。似乎在“pmem.c”文件中可能存在一些问题,我将不得不选择不同的git存储库。但那将是一件非常复杂的事情,因为现在我已经完成了大部分事情直到这里。我可能不得不看这个文件的正确版本。请有人告诉我该怎么办?

如何解决这个错误。

请帮助..thankyou!

+0

你从哪里得到了android内核源代码e代码? – KBoek 2011-03-19 08:03:53

+0

您的ARCH设置不再支持。 CROSS_COMPILE也从命令行中消失。在这种情况下,你的构建会失败,因为你已经开始用ARCH = arm构建你的内核了! 无论如何,你的帖子并没有真正能够按照教程,并在每一个失败的步骤发布一个新的问题,而没有试图自己去想你做错了什么。但更糟糕的是,你甚至没有投票或承认帮助你的人。 – Longfield 2011-03-19 08:39:39

+0

我很抱歉,但为了“投票”,我应该有15个声望点。 – Preetam 2011-03-19 09:34:25

回答

2

您粘贴的邮件中存在多个错误,包括冲突类型和隐式声明。你可能想三件事情来验证:

  1. 没有你选择正确的处理器架构(ARCH)和交叉编译器定义
  2. 确实从另一个拱文件所选择的架构组合(这是难以遏制的,但你可以从检查错误信息中提到的文件的位置开始)
  3. 检查这些文件本身,看它是一个错误(非常不可能,但你永远不知道),而且你实际上必须改变一些代码
+0

对不起,我没有正确地编写代码。那么,我得到了这个,但现在又有一个错误“drivers/rtc/alarm.c:16:致命错误:asm/mach/time.h:没有这样的文件或目录”。我检查了asm目录,time.h文件存在,我不明白什么是错误的? – Preetam 2011-03-19 10:06:47

+0

这已解决。 – Preetam 2011-04-02 09:44:29