非常基本的makefile linux

技术标签: C  Linux  makefile

我是Linux的初学者,并且对通过Internet进行了搜索的Makefile有问题,但它对我不起作用,我使用Ubuntu 16.04V,问题是关于PG.96-99,编程作业1,书1,书籍的问题。第9号操作系统概念的概念。

#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>

int simple init(void)
{
printk(KERN INFO "Loading Module\n");
return 0;
}

void simple exit(void)
{
printk(KERN INFO "Removing Module\n");
}

module init(simple init);
module exit(simple exit);

MODULE LICENSE("GPL");
MODULE DESCRIPTION("Simple Module");
MODULE AUTHOR("SGG");

这是代码,问题说。

此内核模块 simple.c 使用此项目的源代码随附的makefile进行编译。要编译模块,请在命令行上输入以下内容: make

该汇编产生了多个文件。文件 simple.ko 代表编译的内核模块。以下步骤说明将此模块插入Linux内核。

但是我不知道如何用makefile编译。我尝试了很多次,但找不到原因。也许需要另一个代码伴随?请告诉我。

看答案

这是非常基本的。如果您有C来源,则需要编译。为了进行编译和链接,使用makefile。您只需编写MakeFile即可编译负载模块。就是说。


这是简单内核负载模块的非常通用的示例,您可以编辑源文件名和路径。


只是做vi makefile。

makefile模板

obj-m = hello.o
KVERSION = $(shell uname -r)
all:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

保存并关闭文件。在此之前,不要忘记编辑负载模块名称。


有关上述makefile的信息

  1. Makefile第一行称为目标定义,它定义要构建的模块 hello.o。例如 obj-m 定义可加载的模块目标

  2. $(shell uname -r) 是返回当前内核构建版本的有用调用

  3. 然后 M=$(PWD) 可变分配告诉make命令实际的项目文件存在

有关的详细信息 编译Linux内核模块。


智能推荐

Linux下makefile文件的使用

Makefile 介绍 make 命令执行时,需要一个 Makefile 文件,以告诉 make 命令需要怎么样的去编译和链接 程序。 我们的规则是: 1)如果这个工程没有编译过,那么我们的所有 C 文件都要编译并被链接。 2)如果这个工程的某几个 C 文件被修改,那么我们只编译被修改的 C 文件,并链接目标程序。 3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的 C 文件,...

makefile 的 基本使用

make 工具 makefile是如何工作的: 1.makefile  基本由  目标 依赖 命令 三部分组成的规则 2.基本格式为 : 目标:依赖文件 Tab + 命令1 Tab + 命令2 …… 3.makefile中可以使用变量,如果存在 定义 SOURCE = main.c 可以采用 $(SOURCE) 的方式来进行调用 4.makefile...

Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)

http://www.crazyant.net/2011/10/29/linux%E4%B8%8Bgcc%E5%92%8Cmakefile%E5%AE%9E%E4%BE%8B%EF%BC%88%E4%BB%8Egcc%E7%9A%84%E7%BC%96%E8%AF%91%E5%88%B0makefile%E7%9A%84%E5%BC%95%E5%85%A5%EF%BC%89/ 一、确认已经装好了G...

Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)

转自:http://www.crazyant.net/414.html 一、确认已经装好了GCC和Make的软件包 可以使用whereis命令查看: 如果whereis  gcc和whereis  make命令有结果,说明安装了这两个软件,可以继续往下做。 二、使用GCC编译运行一个HelloWorld程序(只涉及单个文件) 可以在任何一个目录编写C程序然后编译运行,我这个实例...

Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)

一、确认已经装好了GCC和Make的软件包 可以使用whereis命令查看: 如果whereis  gcc和whereis  make命令有结果,说明安装了这两个软件,可以继续往下做。 二、使用GCC编译运行一个HelloWorld程序(只涉及单个文件) 可以在任何一个目录编写C程序然后编译运行,我这个实例在自己主目录进行: 然后就进入了编写程序的界面: 按下键盘”...

猜你喜欢

【Linux + Makefile】Makefile中的.PHONY作用以及赋值运算(各种=符号)的区别(转)...

原文链接:https://blog.csdn.net/szullc/article/details/86556809 参考链接:https://blog.csdn.net/tonglin12138/article/details/88636170?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribut...

【填坑指南】[GCC]GCC在windows下的makefile转为Linux下的makefile

这里写自定义目录标题 问题 原因 解决方法 参考资料 问题 在windows下使用GCC编译工程时,编译通过。使用同样的工程代码,放到Linux (Ubuntu)下编译报错。 报错信息如下: Makefile:1: *** 多个目标匹配。 停止。 原因 1.widows下编译器编译的时候生成的.d 、.o等中间文件Linux下的编译器不认。 2. Windows下的makefile文件中的换行符为...

linux - 非常基础的实践命令

坦白讲,linux在(我)实际开发中用到的不是特别多,但是在代码出现异常或者错误的时候,操作的不那么梳理就显得有点尴尬了,所以我把常用的问题梳理了一下。 去实践一项研究成果,最好是带着一些疑问或者是好奇,有一段时间我就是抱着博览群书的目的去看书,但是我发现往往收货不尽如人意,实际开发中让你抓狂的东西,印象才最深刻。 1、日志分析常用命令 cat 命令 cat -n filename 是一个显示文本...

redis中的hash扩容渐进式rehash过程

背景: redis字典(hash表)当数据越来越多的时候,就会发生扩容,也就是rehash 对比:java中的hashmap,当数据数量达到阈值的时候(0.75),就会发生rehash,hash表长度变为原来的二倍,将原hash表数据全部重新计算hash地址,重新分配位置,达到rehash目的 redis中的hash表采用的是渐进式hash的方式: 1、redis字典(hash表)底层有...

不同系统下的回车\r和换行\n,及其历史

2019独角兽企业重金招聘Python工程师标准>>>      我们平时按下键盘上的‘回车键’,就能实现回车换行【我们在屏幕上所看到的就是光标移到了下一行的开头位置!!ps:不讨论软件实现的特殊功能,如word里的回车智能缩进】。因此对这个按键更准确说应该叫做‘回车换行键’ 就且将这种将光标移到下行开...

问答精选

How to get the sum of rows using a vector and the make the result in a column

I have a dataframe and i want to calculate the sum of variables present in a vector in every row and make the sum in other variable after i want the name of new variable created to be from the name of...

Call a custom class in zend framework

I have a very rough project that done partially in zend framework (not ZF2). The 'application', 'library' and 'public' folders are on the same root. Now i need to create a library 'Anil' in the 'libra...

Hide Some Of The Categories In Magento?

I want to hide some of the categories from magento home page. I have created some categories like New Arrivals, Special Offer Which I would like to show in some different way may be in left panel or r...

Reading an internal file in Android Studio

I am writing to an internal file in Android Studio The code lets me write lines of data split with commas. I am able to then go to another activity and read it all out at once. However I want to be ab...

Rails Acts_as_votable Gem Like/Unlike Buttons with Ajax

I'm new to Ruby On Rails, I used the acts_as_votable gem to create Like and Unlike Buttons to make Users like and unlike Posts but I can't make them change from Like to Unlike (and viceversa) and upda...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答