C ++在不同的文件中包含问题? (提升包括)

时间:2018-05-20 14:37:39

标签: c++ boost

所以我使用的是一个在内部使用Boost的库LibA。我有以下结构:

Class1.h:

#ifndef CLASS1_H
#define CLASS1_H

#include <LibA/major.hpp>
#include <other-useful-libraries.h>

namespace LIB{
class HelperClass{
 ...
};
}
#endif

Class1.cpp

#include <Class1.h>
...Implement Class1...

这两个文件编译成功。但是,我还有另一个课程:

Class2.h

#ifndef CLASS2_H
#define CLASS2_H

#include <Class1.h>
#include <other-useful-libraries.h>

namespace LIB{
class MainClass{
 ...
};
}
#endif

Class2.cpp

#include<Class2.h>
..Implement Class2...

但是,一旦我编译了这个,我就会从Class2.cpp中抛出大量的Boost错误,主要是在boost,指令问题,一堆error: expected '}' before end of line中声明的变量,以及许多其他只指向的错误在包含中的一些问题。我在这里的包含中做错了吗?

1 个答案:

答案 0 :(得分:0)

我知道这些错误非常抽象,但以防万一有人在未来的某个时候遇到过这种错误。错误是因为包含的排序。我将#include放在包含的最顶层,并编译了文件。 Boost似乎有一个包含排序的错误(包含防护),所以请确保它在顶部。