ubuntu make编译内核提示缺少.o文件

按书上的编译模块,在写好了Makefile和first.c之后,执行make指令,出现了以下错误:

os@os-virtual-machine:~/文档/OS$ makehttp://ask.csdn.net/pages/markdown
make -C /lib/modules/4.16.3/build M=/home/os/文档/OS modules
make[1]: Entering directory '/home/os/linux-4.16.3'
make[2]: *** No rule to make target '/home/os/文档/OS/first.o', needed by '/home/os/文档/OS/fir.o'。 停止。
Makefile:1561: recipe for target '_module_/home/os/文档/OS' failed
make[1]: *** [_module_/home/os/文档/OS] Error 2
make[1]: Leaving directory '/home/os/linux-4.16.3'
Makefile:6: recipe for target 'default' failed
make: *** [default] Error 2

我写的Makefile文件:

obj-m:=fir.o
fir-objs:=first.o
KDIR:=/lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
default:
        make -C $(KDIR) M=$(PWD) modules
clean:
        make -C $(KDIR) M=$(PWD) clean

(make前面是tab,复制过来有问题)

我写的first.c文件:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
static int first_init(void) {
    struct task_struct *p;
    p=NULL;
    printk(KERN_ALERT"first start");
    printk(KERN_ALERT"名称\t进程号\t状态\t优先级\t父进程PID");
    for_each_process(p){
    printk(KERN_ALERT"%s\t%d\t%d\t%d\t%d\n",p->comm,p->pid, p->state,p->prio,p->parent->pid);
    }
    return 0;

}

static void first_exit(void)
{
        printk(KERN_ALERT"first exit");
}


module_init(first_init);
module_exit(first_exit);
MODULE_LICENSE("GPL");

Makefile和first.c都在文档下新建的os文件夹中,我在其他地方也尝试过,没什么结果。
跪求大神指点

0

1个回答

因为你根本没编译first.c这个文件啊

1
qq_43079236
浪狼郎 这是一个模块,是通过Makelfile编译的
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Ubuntu下Xilinx Linux内核编译问题,出现“缺少ncurses”libraries
对官方提供的内核源码包进行解压缩,进入到内核目录,使用make menuconfig后,发现提示以下错误:*** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** Install ncu
Ubuntu14.04下编译linux内核时无法生成uImage的处理方法
1.  先简述一下linux内核编译流程,当然编译之前需保证arm-linux-gcc编译器已经安装1. 从网上下载内核压缩包文件,比如linux-2.6.22.6.tar.bz2, 同时获取你所需要的补丁文件,比如linux-2.6.22.6_s3c2440.patch 3. 解压内核压缩包 # tar -xjvf linux-2.6.22.6.tar.bz2 -C /home/work/s3c...
求助!ubuntu 编译内核make bzImage以后出错
ubuntu 编译内核make bzImage出错,报错信息如下 内核源文件中的一个c文件中的函数和这个C文件的头文件中的函数重名了,然而源文件都是readonly的, 不能修改,怎么办? ...
ubuntu16.04让内核编译一次过的方法
问题: 进入内核后,发现make menuconfig 出错,而且在在网上找到的一些安装包,安装结束后,发现make menuconfig后的图形界面虽然出来了,但是图形界面里的内容没有出来! 解决方案: 把下面这么多包安装上去,就能解决上述问题。 sudo apt-get install gcc kernel-package libc6-dev tk8.6 libncurses5
正确地保存编译内核产生的 config文件-使用make savedefconfig
正确地保存编译内核产生的 config文件-使用make savedefconfig
Linux编译程序时找不到头文件的解决办法
Linux编译程序时找不到头文件的解决办法 $ gcc test.c -o test test.c:9:16: fatal error: xxx.h: No such file or directory  #include 下面叙述以Ubuntu系统为例。 先查找 xxx.h 所在路径: $ sudo find / -name xxx.h /usr/local/include
编译内核出现的错误
编译内核出息的错误 root@jxj:/home/share/IPC/hi3516cv300/sdk/3516c/linux-3.18.y# make menuconfig HOSTCC scripts/kconfig/mconf.o In file included from scripts/kconfig/mconf.c:23:0: scripts/kconfig/lxdialog/d
内核编译的过程以及出现问题的解决
系统:Ubuntu 16.04 内核版本:2.6.301、从网上下载下来的一份内核源码 linux-2.6.30.tar.bz2 ,解压缩 tar jxvf linux-2.6.30.tar.bz2。由于我的文件放在Download里面,将解压后的内核文件放入到/home目录下。2、进入linux-2.6.30目录 。3、生成配置文件:make menuconfig。可以不做任何修改,后面可以根据...
内核模块编译时出现的问题解决
第一次把自己编译的驱动模块加载进开发板,就出现问题,还好没花费多长时间,下面列举出现的问题及解决方案      1:出现insmod: error inserting 'hello.ko': -1 Invalid module format 法一(网上的):是因为内核模块生成的环境与运行的环境不一致,用linux-2.6.27内核源代码生成的模块,可能就不能在linux-2.6.3
清除编译的内核源码文件
在已经执行过编译操作的内核源码做重新编译,需要进行清理操作: # make clean:清理大多数编译生成的文件,但会保留config文件等,make install 后再执行,不然 make install 会因为找不到需要安装的东西而重新make # make mrproper: 清理所有编译生成的文件、 config及某些备份文件,几乎只在第一次执行内核编译前才用这条命令 # make
Linux学习笔记-编译程序时找不到头文件的解决办法
Linux编译程序时如果找不到头文件会提示如下错误: $ gcc test.c -o test test.c:9:16: fatal error: xxx.h: No suchfile or directory  #include   下面叙述以Ubuntu系统为例。 先查找 xxx.h 所在路径: $ sudo find / -name xxx.h /usr/local/incl
ubuntu18.04 在编译内核时报错解决方案。
ubuntu18.04在编译时报错,主要是安装包问题,将下面安装包重新安装一下即可解决。 sudo apt-get install libncurses5-dev libssl-dev sudo apt-get install build-essential openssl sudo apt-get install zlibc minizip sudo apt-get install li...
编译内核中可能出空间不足的问题 (No space left on device)
运行make -j 2时出现磁盘空间不足错误代码: 用df -h  检看时/dev/mapper/centos-root 100%   通过动态扩容Linux根目录解决这个问题。 {standard input}: Fatal error: can't close arch/x86/crypto/ghash-clmulni-intel.mod.o: No space left on devic...
【编译错误解决方案】提示:“make mrproper”
【编译错误提示】当你不小心在kernel目录运行make编译命令,会出现一个棘手的问题:【解决思路过程】按提示先运行命令“make mrproper”,或者删除out目录,再编译,这也是无济于事的。 我们可以根据错误的输出在当前目录(.)递归(-r)搜索文本“make mrproper”,并显示行号(-n)。在./Makefile文件有一句和错误输出信息一致。 命令:grep –rn “make
编译内核时错误处理
1、make 时错误提示:make[1]: *** No rule to make target 'debian/certs/benh@debian.org.cert.pem', needed by 'certs/x509_certificate_list'。 停止。 make[1]: *** 正在等待未完成的任务.... CC certs/system_keyring.o CC
CentOS7编译内核make menuconfig报错解决办法
背景 在鸟哥的linux私房菜(第四版)中,练习使用linux核心的编译与安装,鸟哥用的是 make menuconfig 命令。在这个练习操作中出现了错误,原因是: 1: 这个命令(make menuconfig)是在文本模式中使用的,而不是图形界面使用的,在图形界面使用不会出现那个蓝色框,所以应该按 Ctrl + Shift + F2 进入文本模式操作; 2: 在文本模式界面中执行 ma...
编译内核提示“Restart config..”的问题分析和解决
问题现象: 编译内核的时候,已经拷贝默认配置文件到.config,但是在编译的时候依然提示“Restart config..”,而且还要一步步配置内核。 ~/Android/allwinner/cqa64_android_v5.1/lichee/linux-3.10$ make -j8 HOSTCC scripts/basic/fixdep HOSTCC scripts/kconf
【树莓派】编译内核
树莓派的内核文件在boot分区下,这个分区的文件系统是fat32的,因此可以在windows下直接访问。更新内核可以获得更稳定的性能以及更多功能,下面介绍如何从源码编译内核。 编译内核一般有两种方法:在树莓派本地进行编译,或者使用交叉编译。后者速度更快,但也更加复杂。本地编译你需要先安装最新版的Raspbian,这是树莓派官方的Linux发行版,然后启动树莓派,连接网络并登陆到系统。第一步是获取内核
实验:手动编译安装LINUX内核及卸载
一. 编译安装内核 到LINUX内核官方网帐下载内核源码包 从 https://www.kernel.org/pub/linux/kernel/ 网站下载需要的版本 解压到特定的目录 tar -xvf linux-4.20.12.tar.xz -C /usr/src 进入内核源码目录,并准备好配置文件 cd /usr/src/linux-4.20.12 cp /boot/config-$...
编译内核出现错误
rd@rd-virtual-machine:~/sda3/green/linux/build$ sh build.sh # configuration written to .config # scripts/kconfig/conf --silentoldconfig Kconfig*** Error during update of the configuration.scripts/kco
Linux内核学习之编译篇
Linux内核学习之编译篇 Linux内核发展至今,文件数已经超过5万,代码量相当巨大。这一方面是内核功能不断增强补充的原因,另一方面当然是Linux的兼容性考虑,导致整个工程非常浩荡,而且很多文件名都一样,处于不同目录而已,这样一来,读者在学习阅读时就容易困惑,到底那个文件才是我需要的呢?这就涉及到本篇要谈到的问题。当然本文不只是告诉你怎么找文件,更主要是谈谈编译方面。
ROS 包编译缺少 .cmake时处理方法
解决方案:sudo apt-get install ros-kinetic-tf2-sensor-msgs 解决方案: sudo apt-get install ros-kinetic-brics-actuator 总结: 凡是提示 xxConfig.cmake 找不到的 一般通过查找上一行 ...provided by &quot;xx&quot; 则sudo apt-get...
加快编译linux内核速度的四种方法
(1)ccache:  减少重复编译相同代码的时间,加快编译速度 (2)make -jN:  充分利用本机计算资源,N为线程数,一般区机器核数的整数倍 (3)distcc:  利用多台计算机资源共同编译一个大型程序,内核或者大型程序 (4)tmpfs:  解决IO瓶颈,充分利用内存资源
Ubuntu下cmake后,make时报错找不到自己写的头文件
首先要把main.cpp和xxx.h,xxx.c放在同一个文件夹下(方便起见)。 然后在cmakelists.txt如下(cmakelists不需要提及头文件,因为这里头文件和源文件在同一个路径) cmake_minimum_required(VERSION 2.8.3) project(3Dtest) ## Compile as C++11, supported in ROS Kinetic ...
推土机:汇集modules时,使用make_install时出现错误
问题描述:按照http://dev.t-firefly.com/thread-10907-1-1.html编译代码时,到最后一步集合modules时,使用 报错,如图所示: 问题解决: 要先使用make modules编译模块才能汇集它们。如图所示: 之后再使用make INSTALL...命令便可以成功了。 问题分析:在错误信息中,我们可以看到,无法获取.../
linux 手动编译更新内核
2019年的第一天升级一下电脑的内核 官方升级太慢了,有时一个半月都不更新 所以手动更新 好咯 虽说arch 更新及时,但感觉不好用,勿喷,   开始编译前的准备工作。 首先,清理以前编译时留下的临时文件。如果是刚刚解开的包,不需要执行这步。如果是第二次或者是第n次编译,那么一定要执行。 相关命令如下: $ sudo make mrproper   https://www.kerne...
树莓派内核编译出错
按照教程http://elinux.org/Raspberry_Pi_Kernel_Compilation#Example_Checklist.2FRoadmap http://blog.csdn.net/jinzheng_2010/article/details/8676213 但是会出现下面的错误 *** No rule to make target `fs/cachefiles/x
linux编译内核make menuconfig报错解决办法
linux编译内核时 输入make menuconfig命令 *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** Install ncurse
操原作业(一)之Ubuntu编译新内核
要求: 1. 准备工作 查看内核版本: 安装相关依赖: sudo apt-get install build-essential kernel-package libncurses5-dev libqt3-headers build-essential (基本的编程库(gcc, make等) kernel-package (Debian 系统里生成 kerne...
ubuntu16.04系统下的kernel 4.10的内核编译以及新增系统调用
1.下载编译过程中的所需的软件依赖包 首先下载编译过程中的编译依赖软件包,此步非常重要。 内核编译依赖软件包主要有一下几个: libncurses5-dev :主要是在make menuconfig时能够出现图形化的选择菜单所依赖的的库 libssl-dev : openssl的依赖包 build-essential:建立debian软件包的工具 openssl :涉及到系
内核编译(五):Makefile解析(二)
    在上节课里,我们对内核源码里的Makefile在总体结构上进行了分析,并发现make uImage所依赖的是vmlinux这个目标。在本节课,我们就开始研究vmlinux是怎么去生成的,我们先把vmlinux这个目标粘贴上来:    我们看到,这个目标里它依赖的有:$(vmlinux-lds),$(vmlinux-init),$(vmlinux-main),$(kallsyms.o) FO...
编译内核模块常见问题
编译内核模块常见问题
Linux kernel编译以及grub2引导
初学Linux Kernel部分,第一步就是先自己玩玩如何下载kernel源代码进行编译并将新内核跑起来 centos 7使用grub2取代之前的grub,网上在介绍linux kernel引导的时候大多以grub为例,所以我在第一次引导kernel的时候出现了挺多的问题,如果有遇到grub2引导问题的小伙伴,希望这篇文章可以帮到你 本次系统为为VirtualBox新安装的CentOS-7-x
Hi3516A开发--编译内核、uboot
有两种编译方式 一、整个编译 (1)编译整个osdrv目录: make OSDRV_CROSS=arm-hisiv300-linux all 或者 make OSDRV_CROSS=arm-hisiv400-linux all /* 如果单板使用spi接口nand flash作为存储介质,请在编译整个目录时传入如下FLASH_TYPE参数 */ make OSDRV_CROSS=
Linux 源代码编译缺少头文件问题
例如,缺少 X11/extensions/XTest.h, $ sudo apt-get install apt-file $ sudo apt-file update $ apt-file search "X11/extensions/XTest.h" libxtst-dev: /usr/include/X11/extensions/XTest.h 得到了包名,于是: sudo
Linux 内核编译(三天吐血经历!)
写在前面的话: 本人大二,东南大学一个软工狗,正在修一门名为《操作系统原理》的坑爹课!前几天做一个实验:编译Linux内核并向其增加一个系统调用。这个实验实在是太让人无语了,各种坑!昨天这个时候,我还在苦苦煎熬中。在今天凌晨四点才做好。为了让其他人少走一些弯路,鄙人就把自己的经验以及教训写下来。里面会有一些不足,希望大家多多指教~ 废话不多说,那就开始吧: 一、实验前的准备: Vm
Linux 编译内核全记录
Linux内核编译
centos7 内核编译中出现错误代码
1、尝试在Linux编译一个程序,但是编译失败并报了一个错,“fatal error: openssl/aes.h: No such file or directory”。 要解决这个问题,你需要安装OpenSSL 开发包,这在所有的现代Linux发行版的标准软件仓库中都有。 要在Debian、Ubuntu或者其他衍生版上安装OpenSSL: $ sudo apt-get install l...
make uImage 编译内核时出错
这个问题又折腾了一个下午: 在做RTC驱动时,修改了arch/arm/plat-s3c24xx/common-smdk.c后,编译内核,发现以下错误: book@www.100ask.org:/work/system/linux-2.6.22.6$ make uImage   CHK     include/linux/version.h make[1]: 'include/asm-arm...
虚拟机里Ubuntu编译内核方法
我们要想了解Linux操作系统,首先要学会编译其内核。Ubuntu编译内核的教程网上有很多,但大多是双系统或者单独的Linux系统,虚拟机环境中的Ubuntu编译内核方法还是有些不同,且网上教程大多都是多年前发布,或多或少不太适用。下面的方法是我在虚拟机里Ubuntu11.0.4编译内核(Linux-3.12.72)步骤,本人亲测有效,希望能够帮到大家! 方法/步骤 1、 ”Ctrl+Al