我使用了层次结构这个词,但我不确定它是否是正确的!让我解释一下。
我有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多个文件项目,所以任何帮助或建议会非常有效吗?
答案 0 :(得分:0)
您发布的代码没有任何问题,gcc
似乎不太可能存在此类错误。
问题更可能不是它看起来的样子。例如,项目中可能有多个A.h
(或B.h
或X.h
)文件,并且某处包含了错误的文件。
我的建议是通过预处理器(.cpp
)运行一个有问题的gcc -E
文件并检查结果。这将告诉你确切的内容。