致命错误:sdl.h:没有这样的文件或目录
Posted
技术标签:
【中文标题】致命错误:sdl.h:没有这样的文件或目录【英文标题】:fatal error: sdl.h: No such file or directory 【发布时间】:2015-06-30 13:03:07 【问题描述】:我在编译 CHIP-8 解释器时遇到了一些问题。 按 ctrl+f9 编译后,我看到一条消息“构建以错误结束。继续?”。
检查构建日志发现以下错误:C:/Workspace/****/****/main.c:4:17: fatal error: sdl.h: No such file or directory
我尝试将 SDL.h 复制到源目录中,但没有成功。
我尝试在源代码中创建一个名为“SDL”(src/SDL/SDL.h)的目录,但没有成功。
我还尝试在 src 旁边创建一个文件夹 (SDL/SDL.h)。那也没用。
之后我尝试了#include <.sdl.h>、#include <.sdl.h>、#include <.sdl.dll> 和#include <.sdl.dll>(忽略“
我还尝试复制 SDL 1.2.15 版和 SDL 2.0.3 版的文件。这也确实有效。
我在做一些根本错误的事情吗? 如何编译?
【问题讨论】:
感谢 Bastien Durel 的快速回复。 您是如何在系统中安装 SDL 的?是windows还是linux?哪个IDE? 我下载了SDL,不明白怎么安装。我正在运行 Windows 10,技术预览版,我使用的 IDE 是 CodeLite 我尝试将 -I/C:/Users/****/Desktop/SDL-1.2.15/include/SDL 添加到 switch 语句列表中,但它似乎没有工作。我使用的编译器是 MinGW ( TDM-GCC-32 ) 我在 include 语句中添加了路径,现在它不再抛出错误,指出找不到它。只是更多,不同的错误。我将尝试 SDL2,看看它是否能做同样的事情。 SDL2 抛出的错误更少,所以我开始用 NULL 替换一些代码,看看是否可以编译它。在输入我的第二个 NULL 后,codelite 继续锁定。我应该放弃并回到 FreeBasic 吗? 【参考方案1】:你必须说你的编译器 sdl.h 所在的位置,-I/path/to/sdl
开启 gcc 或在 msvc 中填充 Include Path
(不要移动它,因为它(sdl.h)可能需要其他头文件)
【讨论】:
【参考方案2】:以下是如何让 SDL1.2.5 与 codelite 一起工作的分步说明:
-
从here下载“开发库”
将 tar.gz 文件内容解压到一个目录。例如:
C:\mysdl
在 Codelite 中,右键单击“工作区视图”中的项目名称
从上下文菜单中,选择“设置...”
将出现“项目设置”对话框。
在“配置类型”中,根据您的要求选择“调试”或“发布”。您还可以对 Debug 和 Release 执行以下步骤。
转到“编译器”选项卡
在“其他搜索路径”中,添加所有 sdl 包含文件所在的路径。例如:C:\mysdl\include
转到“链接器”选项卡
在“库路径”中,添加库路径,例如:C:\mysdl\lib\
在“选项”中附加-lSDL -lSDLmain -lmingw32 -mwindows
(case-matters)
将C:\mysdl\bin\SDL.dll
复制到C:\WINDOWS\SYSTEM32
或者如果是64 位C:\Windows\SysWOW64
包含标题时,您必须使用#include "SDL\SDL.h"
或#include "SDL.h"
,具体取决于您配置目录结构的方式。
【讨论】:
我很确定这个人没有使用 Codelite。以上是关于致命错误:sdl.h:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:glib.h:使用 vscode 和 mingw 时没有这样的文件或目录
致命错误 C1083:无法打开包含文件:'boost/regex.hpp':没有这样的文件或目录