由于ptrace.h文件导致的内核编译出错的解决方法
2013-03-11 10:41
465 查看
编译内核到了make bzImage时出现如下错误:
arch/x86/kernel/ptrace.c:1472:17: error: conflicting types for ‘syscall_trace_enter’
In file included from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/vm86.h:130:0,
from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/processor.h:10,
from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/thread_info.h:22,
from include/linux/thread_info.h:56,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/timex.h:56,
from include/linux/sched.h:56,
from arch/x86/kernel/ptrace.c:11:
/home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/ptrace.h:146:13:
note: previous declaration of ‘syscall_trace_enter’ was here
arch/x86/kernel/ptrace.c:1517:17: error: conflicting types for ‘syscall_trace_leave’
In file included from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/vm86.h:130:0,
from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/processor.h:10,
from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/thread_info.h:22,
from include/linux/thread_info.h:56,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/timex.h:56,
from include/linux/sched.h:56,
from arch/x86/kernel/ptrace.c:11:
/home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/ptrace.h:147:13:
note: previous declaration of ‘syscall_trace_leave’ was here
make[2]: *** [arch/x86/kernel/ptrace.o] Error 1
make[1]: *** [arch/x86/kernel] Error 2
make: *** [arch/x86] Error 2
注意红色标注的两行,说明ptrace.c 文件中第1472行的函数syscall_trace_leave和ptrace.h文件中该函数的声明有冲突,只要将ptrace.h文件中的函数声明改得和ptrace.c中的相同即可。另外,有人专门针对这个错误写了个补丁,地址为https://patchwork.kernel.org/patch/1301031/ 。
PS :以前像遇到这种问题的时候,总会认为是自己哪儿出了问题。这个问题让我懂得linux也是像我一样的程序员写出来的,他们也会犯一些常人会犯的错误,所以Linux需要全世界的程序员一起改进 。
arch/x86/kernel/ptrace.c:1472:17: error: conflicting types for ‘syscall_trace_enter’
In file included from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/vm86.h:130:0,
from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/processor.h:10,
from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/thread_info.h:22,
from include/linux/thread_info.h:56,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/timex.h:56,
from include/linux/sched.h:56,
from arch/x86/kernel/ptrace.c:11:
/home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/ptrace.h:146:13:
note: previous declaration of ‘syscall_trace_enter’ was here
arch/x86/kernel/ptrace.c:1517:17: error: conflicting types for ‘syscall_trace_leave’
In file included from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/vm86.h:130:0,
from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/processor.h:10,
from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/thread_info.h:22,
from include/linux/thread_info.h:56,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/timex.h:56,
from include/linux/sched.h:56,
from arch/x86/kernel/ptrace.c:11:
/home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/ptrace.h:147:13:
note: previous declaration of ‘syscall_trace_leave’ was here
make[2]: *** [arch/x86/kernel/ptrace.o] Error 1
make[1]: *** [arch/x86/kernel] Error 2
make: *** [arch/x86] Error 2
注意红色标注的两行,说明ptrace.c 文件中第1472行的函数syscall_trace_leave和ptrace.h文件中该函数的声明有冲突,只要将ptrace.h文件中的函数声明改得和ptrace.c中的相同即可。另外,有人专门针对这个错误写了个补丁,地址为https://patchwork.kernel.org/patch/1301031/ 。
PS :以前像遇到这种问题的时候,总会认为是自己哪儿出了问题。这个问题让我懂得linux也是像我一样的程序员写出来的,他们也会犯一些常人会犯的错误,所以Linux需要全世界的程序员一起改进 。
相关文章推荐
- 由于ptrace.h文件导致的内核编译出错的解决方法
- 由于ptrace.h文件导致的内核编译出错的解决方法
- 由于ptrace.h文件导致的内核编译出错的解决方法
- Keil-原文件类型不明确导致编译出错的解决方法
- MATLAB mcc编译后执行文件运行出错的解决方法
- coco2dx编译so文件出错解决方法
- 由于SSH配置文件的错误,导致的Permission denied (publickey)及其解决方法
- VMware安装Fedora18,升级3.8.2内核,导致hgfs无法编译安装,无法共享文件夹的问题解决方法
- 由于SSH配置文件的不匹配,导致的Permission denied (publickey)及其解决方法
- mpi编译Boost生成so文件出错:failed gcc.link.dll解决方法
- 刚下载的Android 内核编译出错解决方法
- 由于SSH配置文件的不匹配,导致的Permission denied (publickey)及其解决方法。
- Solaris编译Boost生成so文件出错:failed gcc.link.dll解决方法
- linux 内核编译配置内核make menuconfig 出错解决方法
- Vmware在ubuntu feisty 2.6.20内核下编译出错的解决方法
- 由于SSH配置文件的不匹配,导致的Permission denied (publickey)及其解决方法
- 由于SSH配置文件的不匹配,导致的Permission denied (publickey)及其解决方法及基础ssh知识理解
- .NET编译临时文件导致C盘满的解决方法
- 由于SSH配置文件的不匹配,导致的Permission denied (publickey)及其解决方法