obj-m 添加文件夹
时间: 2023-12-13 11:03:18 浏览: 26
要将文件夹添加到 obj-m 变量中,需要在 Makefile 文件中使用以下语法:
```
obj-m += folder_name/
```
其中,`folder_name` 是要添加的文件夹名称。注意,名称后面需要加上斜杠 `/`,表示添加整个文件夹。
如果需要添加文件夹中的指定文件,可以使用以下语法:
```
obj-m += folder_name/file1.o folder_name/file2.o
```
其中,`file1.o` 和 `file2.o` 是要添加的文件名称。需要指定文件的扩展名为 `.o`,表示这是编译后的目标文件。
相关问题
obj -m :=怎么运行
`obj-m` 是一个 Makefile 变量,用于指定需要编译为 Linux kernel 模块的源代码文件。在 Makefile 中,通常会将该变量定义为指定的源文件名,如:
```
obj-m := my_module.o
```
上述代码表示需要将 my_module.c 编译为名为 my_module.ko 的 Linux kernel 模块。
要运行 `obj-m :=`,需要在 Linux 内核源代码目录下创建一个 Makefile 文件,并将 `obj-m :=` 语句添加到该文件中。然后,在该目录下打开终端,输入 `make` 命令,即可编译生成指定的 Linux kernel 模块。
需要注意的是,编译 Linux kernel 模块需要安装相应的内核开发包,具体安装方法可以根据不同的 Linux 发行版进行查找。同时,编译生成的模块文件需要放置在正确的内核模块目录下,才能被内核成功加载。
obj-y := mxc6655xa.o和obj-m := mxc6655xa.o的使用区别
这两个变量都是用于指定内核模块的编译目标,但是它们的使用方式有所不同。
- obj-y:用于指定当前目录下的所有源文件都要编译为模块,所有的目标文件都会被链接成一个最终的模块。在这个例子中,mxc6655xa.o 是当前目录下的一个源文件,所以它会被编译成模块并加入到最终的模块中。
- obj-m:用于指定当前目录下只有一个源文件需要编译成模块,其他的源文件都应该被忽略。在这种情况下,最终的模块只包含 obj-m 指定的源文件所编译出的目标文件。如果当前目录下有多个源文件需要编译成模块,就需要使用多个 obj-m 变量来指定。
因此,如果你有多个源文件需要编译成模块,可以使用 obj-y 变量;如果只有一个源文件需要编译成模块,可以使用 obj-m 变量。