c++ - 如何设置这个makefile

标签 c++ makefile

我的 makefile 包含两个源文件,即 main.cppgame.cpp。添加 game.cpp 后,我收到以下警告

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

这是生成文件

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

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

关于c++ - 如何设置这个makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23907762/

相关文章:

c - 如何将 gcc 优化级别传递给 cmake 目标?

compiler-errors - 使用GNU编译器: Multiple Target patterns时Makefile错误

c - 两个 C 程序的 makefile

c++ - 如何将 Arduino 库添加到 Eclipse 项目?

makefile - 包括静态库到./configure

c++ - 如何使用BulletPhysics SDK清除VS2015中的错误LNK2001?

幕后的 C++ 模块

makefile - 使用 make 编译库返回错误 - 使用 -fPIC 重新编译(无 ./configure 文件)

c++ - win32 (windows.h) 中是否有将 lParam 转换为 POINT 的便捷函数?

c++ - 如何删除 "Ctrl + Backspace"特殊字符?