所以我使用的是一个在内部使用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
中声明的变量,以及许多其他只指向的错误在包含中的一些问题。我在这里的包含中做错了吗?
答案 0 :(得分:0)
我知道这些错误非常抽象,但以防万一有人在未来的某个时候遇到过这种错误。错误是因为包含的排序。我将#include放在包含的最顶层,并编译了文件。 Boost似乎有一个包含排序的错误(包含防护),所以请确保它在顶部。