如何设置这个makefile

how to set this makefile

本文关键字:makefile 设置 何设置      更新时间:2023-10-16

我有两个源文件,即main.cppgame.cpp。一旦我添加了game.cpp,我得到以下警告

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 $@
main.o: main.cpp
    $(CXX) $(CXXFLAGS) $< -o $@
game.o: game.cpp
    $(CXX) $(CXXFLAGS) $< -o $@
clean:
    rm *.o && rm $(TARGET)

我用的是Mac

在构建命令中缺少game.o,这是因为$<只是第一个依赖项(请参阅警告中的第一行)。因此,game.o中的函数是未定义的。

更多信息请参考gnu.org

编辑:按照建议更新了链接