欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

内核2.6.22.6编译出现 undefined reference to

程序员文章站 2022-06-05 14:13:17
...

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

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

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

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

内核2.6.22.6编译出现    undefined reference to

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

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

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

关于mutex_lock的函数文件

内核2.6.22.6编译出现    undefined reference to

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

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

内核2.6.22.6编译出现    undefined reference to

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

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

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


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