什么是生成generate / autoconf.h?


9

我们正在尝试构建一个需要内核源代码的软件,而不仅仅是头文件。因此,我们通过centos src rpm下载了内核源代码。

但是,缺少autoconf.h。

我们尝试了

  • 将.config放在适当的位置(从/ boot复制一个)。

  • make oldconfig

那么,什么是创建autoconf.h文件的呢?我们实际上必须构建内核吗?


如果有人使用Kconfig作为与Linux不相关的项目的构建体系结构,则此问题的答案会有所不同:要生成autoconf.h,您需要./kconfig-frontends/frontends/conf/conf --silentoldconfig Kconfig
Étienne14年

Answers:


12

该文件include/generated/autoconf.hmake prepare步骤中生成。如果您尝试构建内核模块,则还需要执行以下make scripts步骤:

gunzip < /proc/config.gz > .config
make oldconfig
make prepare
make scripts

通常,内核附带一个标头包,您是否尝试过先安装它?对于CentOS,请尝试安装该kernel-devel软件包。可以在http://wiki.centos.org/HowTos/I_need_the_Kernel_Source中找到详细信息


谢谢!是的,我们已经安装了头文件包,但是由于某些原因,配置脚本需要完整的源代码。我们使用了您链接的Wiki页面。
Stefan

仅出于完整性考虑:在CentOS上,内核配置位于/boot(与uname -r选择合适的内核比较)。
Stefan 2014年

1
@Stefan在某些发行版(例如Arch Linux)上,它位于/lib/modules/$(uname -r)/build/.configbuild通常是的符号链接/usr/src/linux-$(uname -r)),其他发行版使用/boot/config-$(uname -r)(例如Ubuntu,Debian和CentOS)。如果在编译期间启用,也可以从中获得/proc/config.gz
Lekensteyn 2014年

0

该文件autoconf.h是在构建过程中从.conf文件自动生成的。许多内核源文件使用autoconf.h


1
欢迎来到服务器故障!我们更喜欢使用其他答案来解决该问题,而以前的答案则无法解决,或者提供了更好的解决方案。
Falcon Momot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.