У меня был рабочий проект. После изменения кода я попытался перекомпилировать свой проект, но тут начали происходить странные вещи. Взгляните на этот отрывок из вывода компилятора. Я компилирую из Eclipse в Windows, используя MinGW G ++.
**** Build of configuration Debug for project Pract2 ****
**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -omove.o ..\move.cpp
In file included from ..\/game.h:11:0,
from ..\/piece.h:10,
from ..\/move.h:10,
from ..\move.cpp:7:
..\/board.h:18:2: error: 'Piece' does not name a type
board.h , строка 18:
Piece* GetPieceAt(int row, int col) const;
Обычно, когда это происходит, мне просто нужно добавить некоторые включения, которые я забыл сделать. Но на самом деле я включил piece.h в начало board.h .
Вторая моя мысль заключалась в том, что компилятор должен был выдать ошибку где-то в Piece
класс, который заставил бы компилятор игнорировать существование класса, что, в свою очередь, вызовет больше ошибок. В этом случае я бы посмотрел на первую ошибку компилятора, которая, как я ожидал, будет связана с ошибкой в piece.cpp или piece.h . Но первая ошибка вовсе не связана с Piece
, поэтому я посмотрел, пометил ли Eclipse какие-либо ошибки в piece.cpp или piece.h . Нет, красной линии не видно. Я видел только несколько этих необъяснимых желтых маркеров .
Последнее, что я проверил, это то, что каждый файл заголовка содержал защиту включения, что они и сделали.
Как мне добраться до сути. это ошибка? Я бы разместил фрагменты кода, но тогда я бы, вероятно, вставил весь код (что я не могу сделать), потому что может потребоваться дополнительный контекст.
Изменить : вот доска. для написания 2D-игр?