gcc不尊重包含文件的层次结构

时间:2012-05-11 14:13:36

标签: gcc include g++

我使用了层次结构这个词,但我不确定它是否是正确的!让我解释一下。

我有A.h:

#include <iostream>
#include <vector>
using namespace std;

我有B.h:

typedef vector<int> int_vector;
int_vector my_function(int x, int y);

最后我有X.h,即:

#include "A.h"
#include "B.h"

和X.cpp:

#include "X.h"

// and the rest

但是当我用GCC编译它时,它在B.h中表示,矢量未定义,依此类推。请注意,这是一个解释问题的示例。我正在尝试转换为在Linux上编译的项目在Visual Studio上完全在Windows上编译。

我可以更改文件,但它有300多个文件项目,所以任何帮助或建议会非常有效吗?

1 个答案:

答案 0 :(得分:0)

您发布的代码没有任何问题,gcc似乎不太可能存在此类错误。

问题更可能不是它看起来的样子。例如,项目中可能有多个A.h(或B.hX.h)文件,并且某处包含了错误的文件。

我的建议是通过预处理器(.cpp)运行一个有问题的gcc -E文件并检查结果。这将告诉你确切的内容。