- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 Linux Kernel Module Programming Guide 中指定的标准示例 Makefile 编译 Linux 内核模块.如果 Makefile 名为 Makefile
,那么一切正常。如果我将 Makefile 重命名为 Makefile.hello
或其他名称,那么它将失败,因为它找不到路径 Makefile
。我想知道是否有一个命令或一组标志可以添加到我的 Makefile 中以正确执行此功能。我需要重命名 Makefile,因为我正在从 CMake 调用它。 Cmake 会创建自己的 Makefile,并且通常会覆盖我已有的内容。
我用 hello world 示例替换了内核模块代码并重现了问题。我知道它的生成文件。
Hello World 示例 hello.c
/*
* hello−1.c − The simplest kernel module.
*/
#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_INFO */
int init_module(void)
{
printk(KERN_INFO "Hello world 1.\n");
/*
* A non 0 return means init_module failed; module can't be loaded.
*/
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}
生成文件
obj-m += hello.o
ifeq (,$(KDIR))
KDIR := /lib/modules/$(shell uname -r)/build
endif
PWD := $(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PWD) $(KCONFIG) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean
如果生成文件称为Makefile
。 (构建成功)
$> make -f Makefile
make -C /lib/modules/4.4.0-21-generic/build M=/home/msmith/Desktop/kernel-test modules
make[1]: Entering directory '/usr/src/linux-headers-4.4.0-21-generic'
CC [M] /home/msmith/Desktop/kernel-test/hello.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/msmith/Desktop/kernel-test/hello.mod.o
LD [M] /home/msmith/Desktop/kernel-test/hello.ko
make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-21-generic'
如果 makefile 被调用则输出 Makefile.hello
(构建失败)
$> make -f Makefile.hello
make -C /lib/modules/4.4.0-21-generic/build M=/home/msmith/Desktop/kernel-test modules
make[1]: Entering directory '/usr/src/linux-headers-4.4.0-21-generic'
scripts/Makefile.build:44: /home/msmith/Desktop/kernel-test/Makefile: No such file or directory
make[2]: *** No rule to make target '/home/msmith/Desktop/kernel-test/Makefile'. Stop.
Makefile:1396: recipe for target '_module_/home/msmith/Desktop/kernel-test' failed
make[1]: *** [_module_/home/msmith/Desktop/kernel-test] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-21-generic'
Makefile.hello:10: recipe for target 'all' failed
make: *** [all] Error 2
我尝试将 -f 添加到内部 MAKE 参数,但这只会导致更多问题。
最佳答案
将所有与 Kbuild 相关的逻辑移动到文件 Kbuild
中。内核的构建系统首先检查具有此名称的文件,因此它不会查看由 CMake 创建的 Makefile
。此功能记录在 Documentation/kbuild/makefiles.txt 中.
我在与 Linux 内核相关的 CMake 项目中使用了这种方法。
关于c - 使用具有不同路径名的 Makefile 构建 Linux 内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37553169/
我想了解是什么让 ClearCase 创建这样的路径(不止一个@@):\TUNE\Integration\XmlFiles\PM_Content@@\main\integ_mp1601\4\Commu
我正在构建我的第一个多语言应用程序。通过 Middelware 成功检测到语言并将其附加到 req.lang。下一步,有没有办法也本地化路由路径?这对于 SEO 非常有用。 这里通常的方法是什么? c
如果选择了一个路径,我想向菜单点添加一个类。 如果每个网站都有自己的 .php/.html 文件,那就很容易了,但是一切都在 一个 中规则 .php 文件,所有内容都通过操作进行导航(?action=
我在 Windows 7(最新的 MSMQ 版本)上将 MSMQ.MSMQQueueInfo 与 jscript 一起使用。这是在加入域的计算机上运行的。由于某种我不知道的原因,它只是不接受我给它的
我有很多带空格的文件夹名称,例如“red dog” --> “c:\red dog\” files = dir str = ['cd ', files(3).name] eval(str) 执行返回错
我正在寻找有关如何使用 getopts 显示不带基名的目录名的信息。这应该首先为我计算机中的所有 sh 文件提供基本名称、制表符,然后是所有目录。 例如,如果我这样做:myBashfile.sh -e
我正在尝试自定义由 devise gem 创建的 url: devise_for :users, path: '', path_names: { sign_in: 'login', s
我有以下网址: https://www.example.com/article/f/1/test+article 我需要通过 JavaScript(纯 JavaScript)从 url 中获取“1”部
我们在我们的应用程序中使用了 boost::filesystem。我有一个“完整”路径,它是通过将多个路径连接在一起构建的: #include #include namespace b
Pathname 的 .children 方法返回的文件系统实体的顺序似乎是任意的,或者至少不是按字母顺序排列的。 有没有办法让这些通过文件系统按字母顺序返回,而不是在返回的数组上调用 .sort?
我正在尝试使用 pip 为 python 3 安装 Gelatin,我得到了这个回溯: Traceback (most recent call last): File "", line 1, in
我有一个注册页面的表格。该表单包含一个图像,该图像会根据情况更改其 src。在提交表单时激活的脚本中,如果该图像具有特定的 src,我希望表单调用警报,因此我需要一种检索和比较值的方法。 HTML:
Ruby 的 Dir、File 和 Pathname 类之间有什么区别?它们似乎共享通用方法,如 basename、dirname、glob 和 join。什么时候使用一种比另一种更有优势? 在将其功
我们在我们的应用程序中使用了 boost::filesystem。我有一个“完整”路径,它是通过将多个路径连接在一起构建的: #include #include namespace b
对于以下代码,我不断收到Uncaught TypeError: undefined is not a function: var jay = /^(\/gallery\/P[\w\dåäö\/]+)$
我正在报告从 native 系统 API 收集的一些信息。 (我知道这很糟糕......但我得到了我无法通过其他方式获得的信息,而且如果/当那个时间到来时,我不必更新我的应用程序。) native A
我需要从 Ruby (1.9.3) 中的 DOS (Win32) 路径获取文件的 NT( native )路径。 意思是,我有字符串: dos_path = "C:\Windows\regedit.e
我才刚刚开始使用 ASP.NET MVC,我有一个有点微不足道的问题:似乎每个 Controller 都有一个附加的类似文件夹的路径,所以我的站点变成了 mydomain.net/Home/somet
下面是bunyan logger的__init__函数。 def __init__(self, *args, **kwargs): """Defined default log format
总结 我如何在 C++ 中使用 libarchive 编写一个 zip 文件,这样路径名称将被 UTF-8 编码?使用 UTF-8 路径名时,特殊字符将在使用 OS X/Linux/Windows 8
我是一名优秀的程序员,十分优秀!