2014-05-28 3 views
1

У меня есть файл с двумя исходными файлами, а именно main.cpp и game.cpp. После того, как я добавить game.cpp, я получаю следующее предупреждениеКак установить этот make-файл

clang++ -framework SDL2 main.o -o game 
Undefined symbols for architecture x86_64: 

И это Makefile

CXX  = clang++ 
SDL  = -framework SDL2 
CXXFLAGS = -Wall -c -std-c++11 
LDFLAGS = $(SDL) 
TARGET = game 

all: $(TARGET) 

$(TARGET): main.o game.o 
    $(CXX) $(LDFLAGS) $< -o [email protected] 

main.o: main.cpp 
    $(CXX) $(CXXFLAGS) $< -o [email protected] 

game.o: game.cpp 
    $(CXX) $(CXXFLAGS) $< -o [email protected] 

clean: 
    rm *.o && rm $(TARGET) 

Я использую Mac.

ответ

2

В команде build отсутствует game.o, потому что $< - это только первая зависимость (см. Первую строку в своем предупреждении). Поэтому game.o не определены.

Для получения дополнительной информации, пожалуйста, обратитесь к gnu.org

EDIT: Изменена ссылка, как предложил

+0

спасибо +1 за ссылку. – CroCo

+0

Почему я получаю 'clang: warning: аргумент не использовался во время компиляции: '-std-C++ 11'' – CroCo

+1

Я бы предложил ссылку на раздел GNU make manual на [Automatic Variables] (http: // www .gnu.org/software/make/manual/html_node/Automatic-Variables.html # Automatic-Variables) вместо ссылки на эту случайную запись в блоге. –

Смежные вопросы