您的当前位置:首页正文

内核2.6.22.6编译出现undefinedreferenceto

2020-11-09 来源:品趣旅游知识分享网

昨天重下午开始到晚上2点多都没有解决这个问题,今天一大早 起来又开始弄,总算在这个时候吧这个问题解决了 首先谈一下我的内核是2.6.22.6 编译器的版本是GCC-4.8 按照别人的教程。先 #make oldconfig 在#make 但是在此时出现了如下的问题: (注:提图片是

昨天重下午开始到晚上2点多都没有解决这个问题,今天一大早 起来又开始弄,总算在这个时候吧这个问题解决了

首先谈一下我的内核是2.6.22.6 编译器的版本是GCC-4.8

按照别人的教程。先 #make oldconfig 在#make 但是在此时出现了如下的问题:


(注:提图片是网上截图完成,并不代表所有的linux内核编译)

在着了我是想告诉大家,我的问题是怎么解决的,你看到图片的第二行有个说明是:kernel/built—in.o:in function 'mutex_lock'

在这句话里面,那你可以发现,你的函数mutex_lock很有可能在kernel某个函数文件里面,我们现在试着进去kernel/去找找看有没有

关于mutex_lock的函数文件


你会看到在kernel目下确实有几个关于muxtex的文件,这个时候我们只需要打开一个相关的文件分别查看一下,就知道了

很显然我们会打开mutex.c,用Vim打开,你会看到有关的编译错误出现的函数


看到这里你会不会感到十分惊喜,因为你解决问题只有一步之遥了,看到我在图片上的红圈没,那个是我自己加上去了,

你在编译出错时,当你打开此文件时,是没有这个__used的,在这个文件里面,一共有三处地方要改动,那就你自己去改吧,

当你看到 __mutex_unlock_slowpath();这个函数是,同样也要在这个函数前面加上__used


至于为啥要加上__used 请百度或者Google

显示全文