0.11内核编译出错 kernel/kernel.o:在函数‘copy_process’中:对'memcpy'未定义的引用。

在使用高版本GCC编译内核时遇到连接错误,原因是编译器使用了内核中未定义的memcpy函数。通过手动字符拷贝替代memcpy解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编译内核的时候连接出错了,出错内容如下:

 

kernel/kernel.o:在函数‘copy_process’中:

/home/yao/kernel/linux/linux-gdb-rh9/linux/kernel/fork.c:84:对'memcpy'未定义的引用。

 

 

查看对应的代码:

*p = *current; /* NOTE! this doesn't copy the supervisor stack */

一时间想不明白,在工程里找memcpy的引用和定义,却一直找不找原因。后来才在oldlinux上找到答案,连接如下:

http://www.oldlinux.org/oldlinux/archiver/?tid-3965-page-3.html

 

我将解决方法复制了过来:

 

高版本的gcc使用memcpy来对结构赋值,编译内核时却不能使用这些函数。这是编译器版本不同导致的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值