我正在本地修改设备的 linux 内核,并在 /include/linux 中添加了一个头文件(例如 ah),并在内核目录中的两个 C 文件中引用了它。头文件包含一个已在其中初始化的结构。每当我编译内核时,它都会显示“struct_var”错误的多重定义。我应该做出哪些改变?
答案1
您需要确保它只包含一次。
通常,您会使用
#ifndef UNIQUE_IDENTIFIER_MAYBE_THE_FILENAME
#define UNIQUE_IDENTIFIER_MAYBE_THE_FILENAME
// your file contents go here
#endif
这样,编译器第二次包含此文件时,会定义 UNIQUE_IDENTIFIER_MAYBE_THE_FILENAME,因此它不会定义其中的任何位。