Я пытаюсь собрать ядро Android Linux для MT6580 SoC.«.config» успешно сгенерирован из «make menuconfig».Когда я запускаю команду «make», я сталкиваюсь с этой ошибкой:
In file included from include/linux/linkage.h:6:0,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/mm.h:9,
from mm/ksm.c:18:
include/linux/export.h:57:2: error: expected ',' or ';' before 'extern'
extern typeof(sym) sym; \
^
include/linux/export.h:69:2: note: in expansion of macro '__EXPORT_SYMBOL'
__EXPORT_SYMBOL(sym, "")
^
mm/ksm.c:1830:1: note: in expansion of macro 'EXPORT_SYMBOL'
EXPORT_SYMBOL(ksm_run_change);
^
scripts/Makefile.build:257: recipe for target 'mm/ksm.o' failed
make[1]: *** [mm/ksm.o] Error 1
Makefile:938: recipe for target 'mm' failed
make: *** [mm] Error 2
Код, который вызывает ошибку:
#define __EXPORT_SYMBOL(sym, sec) \
extern typeof(sym) sym; \
__CRC_SYMBOL(sym, sec) \
static const char __kstrtab_##sym[] \
__attribute__((section("__ksymtab_strings"), aligned(1))) \
= VMLINUX_SYMBOL_STR(sym); \
extern const struct kernel_symbol __ksymtab_##sym; \
__visible const struct kernel_symbol __ksymtab_##sym \
__used \
__attribute__((section("___ksymtab" sec "+" #sym), unused)) \
= { (unsigned long)&sym, __kstrtab_##sym }
У меня очень ограниченные знания C, и операторы определения мыслей быливведите: "#define key value".Вышеприведенное, кажется, представляет собой одну сложную строку, поэтому, учитывая ошибку, в чем может заключаться проблема.Я использую версию компилятора GCC 4.9