我安装了 Ubuntu 16.04 LTS 并安装了 linux-headers。我正在尝试构建 uClibc-ng,它需要 linux 头文件。因此,当我从 linux-headers 目录运行以下命令时,会收到以下错误消息。我错过了什么步骤?
sudo make INSALL_HDR_PATH=/tmp/linux-headers headers_install
CHK include/generated/uapi/linux/version.h
UPD include/generated/uapi/linux/version.h
make[1]: *** No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl'
needed by 'arch/x86/entry/syscalls/../include/generated/asm/syscalls_32.h'.
Stop.
arc/x86/Makefile:216: recipe for target 'archheaders' failed.
make: *** [archheaders] Error 2
我创建了一个新的虚拟机来玩,它uname -a
是:
Linux ubuntu 4.15.0-46-generic #49~16.04.1-Ubuntu SMP Tue Feb 12 17:45:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
一些问题:
linux-headers-4.15.0-46
和 和有什么不一样linux-headers-4.15.0-46-generic
?- 在我的虚拟机上,我有 2 组
linux-header
目录。一个与4.14.0-29
一个与4.14.0-46
。在这些集合中的每一个中有 2 个目录。一个有一个没有-generic
。我需要维护这两个集合吗? - 有谁知道需要在新的 16.04 Ubuntu 映像上执行哪些步骤才能获得 linux-headers 的任何说明?
我终于想通了。我去了 GitHub 并获取了与我正在运行的 Ubuntu 版本相关的 Linux 源代码。我能够运行:
这就像一个魅力,不需要在提升的特权模式下运行。
安装
linux-source
包:uClibc 相当老了;我建议改为安装 uClibc-ng。