编译时提示SDL2文件或目录不存在的问题求助
解决SDL2编译时"SDL2不是文件或目录"的问题
核心错误修正
你的编译命令里链接库的参数用错了:
-L是指定库文件的搜索目录,而链接具体库需要用-l(小写L)- 正确的链接参数应该是
-lSDL2main -lSDL2,而不是-LSDL2main -LSDL2
修正后的完整编译命令:
g++ -Isrc/include -Lsrc/lib -o main main.cpp -lmingw32 -lSDL2main -lSDL2
额外排查步骤
- 确认
src/lib目录下存在对应的库文件:- 静态库:
libSDL2main.a、libSDL2.a - 动态库:
SDL2.dll(编译后需要把这个dll放到生成的main.exe同目录下才能运行)
- 静态库:
- 如果你用的是Makefile,要确保Makefile里的编译规则也同步修正了参数,而不是只改了单独的g++命令
- 检查SDL2版本是否匹配你的MinGW架构:如果是32位MinGW,要下载32位的SDL2开发包;64位MinGW对应64位SDL2,版本不匹配也会导致找不到库
内容的提问来源于stack exchange,提问作者eyad alkhalifa
相关产品推荐
相关产品推荐

