SDL.h: 没有这个文件或目录。

4
我已经在Ubuntu上安装了libsdl 1.2 -dev,但问题是它不理解#include<SDL.h>。它显示如下信息:
SDL.h: No such file or directory

但是当我输入以下内容时:
kit0n@ubuntu:~$ g++ sepand.cpp -o sepand -lSDL

项目编译没有任何问题。 我该怎么做才能让Ubuntu理解SDL.h?


SDL.hsdl.h不是同一件事情 - 您的代码和错误消息不匹配,请纠正。此外,您的问题不够清晰 - 它在哪里工作,哪里不工作?如果您引用的g++命令有效,那么问题到底是什么? - Mat
问题在于当使用 SDL.h 时它无法工作,但是当使用 SDL/SDL.h 时可以工作。问题在于我无法更改代码,因此必须让它与 SDL.h 一起工作。 - user997125
1
然后在编译命令中添加“-I/usr/include/SDL”(或者该目录在您的计算机上的位置)(在源文件名之前)。 - Mat
有没有什么方法可以让我不需要在每次编译之前都这样做呢? 因为我所说的这个程序与SDL相关的一些函数,所以我并不是编译某些东西,而是运行一个程序。 - user997125
我不明白你在说什么。头文件只在编译时使用。如果你遇到了这个错误,那么你正在编译某些东西。而且如果你在编译,你需要告诉编译器头文件在哪里。 - Mat
Mat 是正确的。确保包含 /usr/include/sdl 并链接到 SDLmainSDL - TheBuzzSaw
1个回答

6

正确的方法是将`sdl-config --cflags`添加到您的CXXFLAGS中。(即使在您的情况下似乎不需要,您也应该将`sdl-config --libs`添加到您的LIBS中。)

从链接中释义:使用命令sdl-config --cflags --libs(SDL 1.2)或者sdl2-config --cflags --libs(SDL2)的输出,例如:

gcc -o test test.c `sdl-config --cflags --libs`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接