C ++ Makefile не компилирует зависимости / ошибки компоновки?

Надеюсь, это не глупый вопрос.
Я новичок в Makefiles на C ++, и я написал такой простой:

game: game.o state.o move.o board.o
g++ state.o move.o board.o game.o -o game

game.o: game.cpp
g++ -c game.cpp

state.o: state.cpp state.h
g++ -c state.cpp

move.o: move.cpp move.h
g++ -c move.cpp

board.o: board.cpp board.h
g++ -c board.cpp

clean:
rm *.o game

Когда я запускаю «make game», все функции, вызываемые в game.cpp, которые определены в state.cpp, генерируют ошибку, а state.cpp включает в себя move.h и board.h. По сути, это как будто я использую только g ++ -c game.c.

Я не очень понимаю, как это исправить. Должен ли я менять порядок зависимостей?

Спасибо!

0

Решение

Учитывая фактическую ошибку это:

 g++ game.C -o game
undefined reference to State::setSize(int)' undefined reference to State::setToMove(int)' undefined reference to State::setToMove(int)'

Я бы сказал, что у вас нет game.cpp исходный файл, но game.C исходный файл, и неявное правило make запускает сборку game, Увидеть:

Вы можете запустить make с помощью --no-builtin-rules возможность отключить их.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]