我偶然发现了这个关于 Linux 下 USB 视频采集器的网站,我正在尝试编译here找到的代码。我读过有关 makefile 的内容,但这个让我困惑,因为它太短了:
usbtv-y := usbtv-core.o \
usbtv-video.o
obj-$(CONFIG_VIDEO_USBTV) += usbtv.o
我现在想写我自己的 makefile。我现在想知道的是,
Kconfig
文件的用途以及如何使用它。我很难找到更多关于如何使用它的信息,只有一些关于 KDE 的东西,这不是我想要的。有人可以启发我吗?我认为这很重要,因为在描述中(在我链接的第一个网站上)它说如何使其工作
Linux内核驱动,启用CONFIG_VIDEO_USBTV
这是 Kconfig 文件:
config VIDEO_USBTV
tristate "USBTV007 video capture support"
depends on VIDEO_V4L2
select VIDEOBUF2_VMALLOC
---help---
This is a video4linux2 driver for USBTV007 based video capture devices.
To compile this driver as a module, choose M here: the
module will be called usbtv
另外,Kconfig 文件中“在这里选择 M”是什么意思?在哪里?如何?什么时候?
这个 Makefile 不完整。它被其他 makefile 包含:
此 makefile [1] 包括这个 [2],其中包括这个 [3],其中包括这个 [4],其中包括这个 [5],其中包括您的示例。
与 Makefile 一样,这个 Kconfig 文件也不完整。它被其他 Kconfig 包含:这个 kconfig [6] 包括...其中包括...等等...其中包括您的示例。
根据文档,这段kconfig定义了一个帮助文本:
- 帮助文本:“帮助”或“---帮助---” 这定义了帮助文本。帮助文本的结尾由以下因素确定 缩进级别,这意味着它在第一行结束 比帮助文本第一行更小的缩进。 “---help---”和“help”在行为上没有区别,“---help---”是 用于帮助在视觉上将配置逻辑与内部帮助分开 该文件可以为开发人员提供帮助。
因此,“M”是程序的一个选项,而不是 kconfig 的功能。与Kconfig无关。
您可以在此处找到 kconfig 文档 [7],在此处找到 makefile 文档 [8]。
[1] https://github.com/torvalds/linux/blob/master/Makefile
[2] https://github.com/torvalds/linux/blob/master/drivers/Makefile
[3] https://github.com/torvalds/linux/blob/master/drivers/media/Makefile
[4] https://github.com/torvalds/linux/blob/master/drivers/media/usb/Makefile
[5] https://github.com/torvalds/linux/blob/master/drivers/media/usb/Makefile
[6] https://github.com/torvalds/linux/blob/master/Kconfig
[7] https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt
[8] https://www.kernel.org/doc/Documentation/kbuild/makefiles.txt