编译c++代码时出现如下错误信息:
main.cc:2:10: note: './hello.h' included multiple times, additional include site here
#include "hello.h"
原因分析:
我的代码结构如下, 在main.cc文件中由于world.h中已经导入过一次hello.h文件了,如果main.cc中include一次hello.h文件,则hello.h的头文件会被编译两次。这就是出错的原因了。
// main.cc
#include<iostream>
#include "hello.h"
#include "world.h"
...// hello.h
...// world.h
#include "hello.h"
解决方案:
如果hello.h头文件会被其他文件引用,为了避免重复编译,给hello.h文件加上一个宏定义保护就好。
其他文件保持不变,仅修改hello.h文件。// hello.h
#ifndef HELLO_H_
#define HELLO_H_
...
#endif // HELLO_H_