【发布时间】:2020-07-22 04:30:47
【问题描述】:
我正在做一个从 INTEGRITY OS 到 UBUNTU 的移植项目。面临编译器错误,如下所述。即使没有在 INTEGRITY OS 中编译,我认为那里没有错误。 我找到了根本原因。我期待解决方案如何实现这一目标。
main.c
#include "file1.h"
#include "file2.h"
#include "file3.h"
.
.
.
里面的所有文件来自
file1.h 到 file3.h 在每个文件的开头。
#ifdef INC_HEADER_FILE
#error Multiple header files included.
#endif
#define INC_HEADER_FILE
.
.
.
上面编译时抛出错误
In file included from ../main.c:
../file1.h: error: #error Multiple application header files included.
# error Multiple application header files included.
^~~~~
file1.h 到 file3.h 的所有文件都抛出相同的错误
【问题讨论】:
-
在您的问题中显示一些minimal reproducible example。阅读Modern C、this C reference、GCC的文档、C11标准n1570、CPP的文档、GDB的文档
-
“我找到了根本原因。我期待解决方案如何实现这一目标。”究竟如何实现what?如果您的所有头文件都使用相同的预处理器变量作为保护,那么您似乎希望在每个包含时都得到一个错误......
标签: c linux ubuntu gcc integrity