Windows下CodeBlocks配置SDL 1.2.13出现Cannot find -lSDLmain报错如何解决
报错原因
Cannot find -lSDLmain -lSDL.dll属于链接阶段错误,链接器无法找到SDL对应的编译导入库。你复制的SDL.dll是运行时依赖,不参与编译环节的库查找,错误完全来自项目编译配置问题。
修复步骤
- 首先确认你使用的是MinGW版本的SDL1.2.13开发包,不要用VC版本的开发包,CodeBlocks默认搭载MinGW编译器,VC的
.lib库和MinGW的.a库不兼容。正确的MinGW版SDL开发包的lib目录下,必须存在libSDLmain.a和libSDL.dll.a两个文件。 - 打开当前项目的构建选项:右键项目名称 -> 点击「构建选项」 -> 选择你要配置的编译目标(Debug/Release,也可以直接选中根项目名全局配置)
- 切换到搜索目录标签页:
- 「编译器」子标签:添加SDL开发包根目录下的
include文件夹路径 - 「链接器」子标签:添加SDL开发包根目录下的
lib文件夹路径
- 「编译器」子标签:添加SDL开发包根目录下的
- 切换到链接器设置标签页,修改链接库列表:原有配置里的
SDL.dll改为SDL,或者直接填写完整库名libSDLmain.a、libSDL.dll.a。MinGW链接器会自动补全lib前缀和.a后缀,链接配置里绝对不能出现.dll后缀的库名。 - (可选)如果修改后出现
WinMain@16相关的入口报错,在构建选项 -> 编译器设置 -> 其他选项中添加-lmingw32,保证MinGW运行时库优先链接。 - 配置完成后执行全量重编译即可,
SDL.dll放在项目根目录下即可满足运行时加载要求。
内容的提问来源于stack exchange,提问作者Wail Himeur
相关产品推荐
相关产品推荐

