我确信这是一个微不足道的错误。尽管如此,我无法在Stackoverflow上找到错误或解决方案。 我收到了上面提到的struct Transition错误,看似在这里声明: Transition.h:
#ifndef ZOCK_TRANSITION_H
#define ZOCK_TRANSITION_H
#include <iostream>
#include "vec.h"
#include "dir.h"
#include "Board.h"
using std::ostream;
using std::endl;
struct Transition
{
vec fromv;
dir fromd;
vec tov;
dir tod;
Transition();
Transition(vec fromv, dir fromd, vec tov, dir tod);
friend ostream& operator<< (ostream& os, cost Transition& t);
};
Transition swap(Transition& t) const;
#endif// ZOCK_TRANSITION_H
错误消息是:
g++ -std=c++14 -I./inc -c src/Transition.cpp -o build/debug/Transition.o -g3
In file included from ./inc/Board.h:21:0,
from ./inc/Transition.h:19,
from src/Transition.cpp:12:
./inc/Map.h:29:9: error: ‘Transition’ was not declared in this scope
vector<Transition> transitions;
让我们看一下Map.h:
#ifndef ZOCK_MAP_H
#define ZOCK_MAP_H
#include <string>
#include <vector>
#include "Transition.h"
using std::string;
using std::vector;
class Map
{
friend class Board;
private:
int height, width;
char ** fields;
vector<Transition> transitions;
public:
enum readfrom
{
str = 0,
file ,
NUM_READFROM //Leave last !
};
Map(string i, readfrom p);
};
#endif// ZOCK_MAP_H
它不太可能是编译器或链接器错误,因为似乎每个文件都被正确找到。似乎所有东西都被正确包含在内,所以我处于死胡同。
哪些dows会导致错误或导致错误的常见错误?