编译器无法找到SDL头文件,运行Code::Blocks示例报错求助
解决Code::Blocks中SDL头文件找不到的问题
嘿,我来帮你搞定这个SDL头文件找不到的问题!这个错误说白了就是Code::Blocks的编译器不知道你的SDL头文件放在哪儿——虽然你手动添加了include文件,但项目的编译设置没跟上,来跟着下面的步骤调整:
步骤1:打开项目编译设置
打开你的Code::Blocks项目,点击顶部菜单栏的Project -> Build options...
步骤2:添加头文件搜索路径
在弹出的窗口里,先选中你的项目名称(别选单个源文件哦),然后切换到Search directories标签页:
- 点击Add按钮,浏览到你解压后的SDL文件夹里的
include目录(比如你把SDL解压到C:\SDL,那路径就是C:\SDL\include) - 勾选Recursive选项(如果你的SDL头文件有子目录的话,这个选项能让编译器自动搜索子目录里的文件)
步骤3:添加链接库设置
接着切换到Linker settings标签页:
- 点击Add按钮,找到SDL文件夹里
lib目录下的库文件,Windows环境下一般是libSDL.a(静态库)或者SDL.lib(动态库) - 别忘了把SDL的动态链接库文件(比如
SDL.dll)放到你的项目可执行文件所在的目录,或者系统的System32/SysWOW64目录里,不然运行程序时会提示找不到dll
额外注意点
- 确认你下载的SDL版本和Code::Blocks使用的编译器位数一致:32位SDL对应32位编译器,64位SDL对应64位编译器,位数不匹配也会出问题
- 检查你的头文件引用是否正确:如果你的SDL
include目录里直接是SDL.h而不是放在SDL子文件夹下,那代码里要改成#include <SDL.h>,不过标准的SDL包都是把头文件放在SDL子目录里的,所以#include <SDL/SDL.h>是没问题的
附上你提到的错误和代码片段:
错误提示:
SDL/SDL.h: No such file or directory
相关代码片段:#ifdef __cplusplus #include <cstdlib> #else #include <stdlib.h> #endif #include <SDL/SDL.h> int main ( int argc, char** argv ) { // initialize SDL video if ( SDL_Init( SDL_INIT_VIDEO ) < 0 ) { printf( "Unable to init SDL: %s\n", SDL_GetError() ); return 1; } // ... 其他代码 }
内容的提问来源于stack exchange,提问作者Sam Corbett
相关产品推荐
相关产品推荐

