首页 文章

内核编译和menuconfig

提问于
浏览
-1

我是linux的新手,在vmware融合中使用ubuntu(4.4.0-64-generic) . 我正在学习如何编译内核 . 所以,我从kernel.org下载了内核(linux-4.4.52.tar.xz) . 但是当我输入make menuconfig时,会出现一些错误 .

root@ubuntu:/usr/src/linux-4.4.52# make menuconfig

HOSTCC脚本/ basic / fixdep包含在/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:160:0的文件中,来自/usr/include/limits.h:143,来自/ usr / lib / gcc / x86_64-linux-gnu / 5 / include-fixed / limits.h:168,来自/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:7,来自/ usr / lib / gcc / x86_64-linux-gnu / 5 / include-fixed / limits.h:34,from scripts / basic / fixdep.c:114:/usr/include/x86_64-linux-gnu/bits/local_lim.h: 38:26:致命错误:linux / limits.h:没有终止此类文件或目录编译 . scripts / Makefile.host:91:目标'scripts / basic / fixdep'的配方失败make [1]:* [scripts / basic / fixdep]错误1 Makefile:444:目标'scripts_basic'的配方失败make:* [scripts_basic ]错误2

我已经安装了头文件并完成了我能做的一切 . 有人可以帮我解决这个问题吗?

1 回答

  • 0

    你的象征性联系是错误的; /usr/src/linux-4.4.0-64-generic/include/linux 是错误的目录,不得链接到 /usr/include/linux .

    内核有两组标头:内核内部头文件和用户API头文件 . 后者位于 uapi 目录中,它们是用户空间程序应该看到的 .

    在编译自己的内核时,可以使用make headers_install安装该内核的用户空间头 . 当您使用发行版的内核时,您可以(重新)安装相应的软件包(在您的情况下, linux-headers-generic ),只要您之后不再使用这些文件,这将做正确的事情 .

相关问题