繁体   English   中英

我必须包括哪个头文件才能在内核源文件中获取printk()?

[英]Which header file do I have to include to get printk() within a kernel source file?

假设我要在编译内核之前在arch/x86/boot/string.c使用printk() 我必须包括哪个头文件,以便链接器知道在哪里可以找到printk() 我尝试了#include <linux/kernel.h>#include <linux/printk.h>但是在make bzImage告诉我链接器找不到printk过程中,我总是会出错:

arch/x86/boot/compressed/string.o: In function `memcmp`:
string.c:(.text+0x19): undefined reference to `printk`

您正在尝试检测内核的启动阶段。 它有自己的很小的库,没有像linux/printk.h这样的头文件。 该函数称为printf() ,它在arch / x86 / boot / printf.c中实现

该函数的输出将进入BIOS中定义的通道( int 10h ),并进入旧版(例如,您不能使用具有32位I / O的UART)串行线。 有关详细信息,请参考printf.c源文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM