Все параметры -imacros file и -include file обрабатываются после всех параметров -D и -U 1 .
Каждая (из трех) опция - это способ указать GCC на текстовый файл со списком определений препроцессора.Чтобы использовать опцию 3, -imacros a_file , по-прежнему необходим файл a_file (т.е. autoconf.h), файл с макросами или определениями конфигурации.В этой системе это / usr / src / linux / include / generate / autoconf.h
l /usr/src/linux
lrwxrwxrwx 1 root conman 23 Nov 29 19:37 /usr/src/linux -> linux-2.6.35-gentoo-r12
Как видите, этот файл может появиться в 2.6.35.Кажется, что, возможно, конфигурирование ядра делает этот файл;потому что содержимое этого файла выглядит с учетом текущего ядра.Это похоже на файл, объявляющий, какие драйверы скомпилированы (в отличие от скомпилированных как модули).
Итак:
- Сначала проверьте файл
find /usr/src/linux/. -name autoconf.h
Если это не такзатем настройте ядро (затем проверьте снова) - Измените CFLAGS в Makefile драйвера устройства, включив в него -imacros / usr / src / linux / include / generate / autoconf.h
CFLAGS+=-imacros /usr/src/linux/include/generated/autoconf.h
- Комментарий
#include <config.h>
из источников драйверов.
1"3.11 Опции, контролирующие препроцессор", GCC Reference