C++ SFML项目使用mingw32-make编译出现类成员未定义引用错误
错误原因
你遇到的是链接阶段错误,提示找不到Game类相关成员函数的定义,根源是你的Makefile配置存在疏漏:
- 编译规则仅编译了
main.cpp,没有把包含Game类实现的Game.cpp编译为目标文件 - 链接规则也没有将Game类对应的目标文件纳入链接流程
修复方案
直接修改Makefile内容如下,注意Makefile中每一行规则的缩进必须使用Tab字符,不能用空格代替:
all: compile link compile: g++ -I src/include -c main.cpp Game.cpp link: g++ main.o Game.o -o main -L src/lib -l sfml-graphics -l sfml-window -l sfml-system clean: del *.o main.exe
修改完成后,先删除之前生成的main.o旧文件,再重新执行mingw32-make命令即可正常编译通过。如果需要清理编译产物,可以运行mingw32-make clean。
内容的提问来源于stack exchange,提问作者Khaled Nadam
相关产品推荐
相关产品推荐

