Почему установленные заголовочные файлы linux пусты?
Я бегу 14.04, установлен на пустой жесткий диск. Заголовочные файлы Linux установлены, но .h
файлы пусты. Я вижу, что файлы здесь имеют нулевую длину: /usr/src/linux-headers-3.13.0-37-generic/include/config
,
Заголовочные файлы установлены согласно:
> sudo apt-get install linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree
Reading state information... Done
linux-headers-3.13.0-37-generic is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
Как я могу действительно установить заголовочные файлы, чтобы они имели ненулевую длину?
1 ответ
Просто сталкивался с этим, по словам Кристофа:
include / config вообще не используется для заголовочных файлов. Это часть хитрой уловки по оптимизации сборки ядра.
Конфигурация ядра (хранится в.config) используется для генерации файла заголовка, который используется во всем ядре. Проблема состоит в том, что изменение одного параметра означает, что все файлы, которые включают config.h, необходимо будет перестроить, даже если большинство из них не будут затронуты этим параметром.
Это решается удалением зависимости make-файла от config.h и заменой ее зависимостью от одного из файлов в include/config. Каждый файл там соответствует опции конфигурации. Всякий раз, когда эта опция изменяется, система конфигурации касается этого файла (обновляя свою временную метку, заставляя make перестраивать все зависимые файлы.