当前位置: 首页 > 面试题库 >

从多个源文件构建内核模块,其中一个与模块具有相同的名称

尉迟子民
2023-03-14
问题内容

是否可以从多个源文件中构建一个内核模块,这些源文件中的一个与模块具有相同的名称?

例如:我要使用以下源文件构建“ mymodule.ko”:
mymodule.c
mymodule_func.c

这个makefile不起作用:

#Makefile
obj-m += mymodule.o
mymodule-objs := mymodule.o mymodule_func.o

谢谢


问题答案:

我找到了解决方案,将源文件放在一个子文件夹中:

生成文件
src / mymodule.c
src / mymodule_func.c

#Makefile
obj-m += mymodule.o
mymodule-objs := ./src/mymodule.o ./src/mymodule_func.o

all:
    make -C $(KERNEL_PATH) M=$(PWD) modules

clean:
    make -C $(KERNEL_PATH) M=$(PWD) clean


 类似资料:
  • 我有一个gradle android项目,有两个模块: 穿 在我的gradle配置中,我有不同的构建类型。默认设置(debug和release,每个都有自定义设置)以及dev和beta构建类型(也有自定义签名、自定义proguard和自定义applicationIdSuffix)。 我现在想做的是使用构建类型测试版(gradle清洁组件测试版)构建应用程序包。这就开始在测试版中构建应用程序,看到它

  • 我尝试构建一个基于多个maven模块的web应用程序。其中一个模块称为“Web”,它单独负责打包war,该war应该使用tomcat7-maven-plugin部署到tomcat。我在parent.pom中定义了以下模块: 通用 持久性 嵌入持久性 服务 Rest 网站 但是,如果我用mvn tomcat7:run运行web应用程序,它看起来相当不错,因为插件跳过了其他非战争构建模块。 如何才能以

  • 目录结构 成功编译并生成out/calc-module目录。 模块-info.java

  • 问题内容: 我想构建一个将与所有内核发行版兼容的内核模块。例如,如果我在内核3.2.0-29上构建内核模块并尝试在3.2.0-86上加载它,则会出现以下错误: modprobe my_driver 致命:插入my_driver(/lib/modules/3.2.0-86-generic/kernel/fs/my_drv/my_drv.ko)时出错:无效的模块格式 [在日志消息中:my_drv:对符

  • 我有一个带有多个模块的gradle(Android)库,有些模块依赖于其他模块(与这里的答案非常相似)https://stackoverflow.com/a/41761846/906362) 这对开发很有用,因为我可以对任何模块进行更改,并看到它们反映在其他模块上。但是要将构建发布到,我需要依赖项作为它们的在线版本。比如: 因此,当它被添加到项目中时,它正确地引用了在上找到的版本,而不是在使用时添