查找软件包位置时出现问题:libsdl2-image-2.0-0

查找软件包位置时出现问题:libsdl2-image-2.0-0

最近我一直在研究 SDL 库,并想开始使用 libsdl2-image-2.0-0 和 SDL。我一直在尝试让它与 Ubuntu 15.04 配合使用。我使用以下方法安装了该软件包

sudo apt-get install libsdl2-image-2.0-0

安装似乎完全正常,但当我尝试将图像库包含到我的 C++ 代码中时

#include <SDL2/SDL_image.h>

我收到错误“致命错误:SDL2/SDL_image.h:没有这样的文件或目录”,我去查看了 SDL2 基础库位于 /usr/local/include/SDL2 的位置,正如错误消息所述,SDL_image.h 不存在。然后我试图找出库使用的位置

apt-file search SDL_image.h

当我这样做的时候

libsdl-image1.2-dev: /usr/include/SDL/SDL_image.h
libsdl2-image-dev: /usr/include/SDL2/SDL_image.h

都显示为结果。这对我来说很奇怪,因为我没有安装 libsdl2-image-dev。此外,当我尝试查看 /usr/include/SDL2/ 时,该文件夹甚至不存在,这更让我感到困惑。

然后我尝试删除 libsdl2-image-dev,以便可以安装 libsdl2-image-2.0-0,但是当我运行命令时

sudo apt-get remove libsdl2-image-dev

我明白了

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'libsdl2-image-dev' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.

当我尝试运行命令时

sudo apt-get install libsdl2-2.0-0

我最终得到了

Reading package lists... Done
Building dependency tree       
Reading state information... Done
libsdl2-2.0-0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.

所以基本上我无法找到这个库的位置,因此无法将其正确链接到我的代码。有没有更可靠的方法来定位这个库的位置,以及在使用这些补充库时我是否还不了解一些基本知识?

答案1

这对我来说很奇怪,因为我没有安装 libsdl2-image-dev。此外,当我尝试查看 /usr/include/SDL2/ 时,该文件夹甚至似乎不存在,这让我更加困惑。

apt-file使用数据库搜索可用包的内容,因此显示您尚未安装的包也就不足为奇了。

然后我尝试删除 libsdl2-image-dev,以便可以安装 libsdl2-image-2.0-0

为什么您认为必须删除一个才能安装另一个,尤其是当您已经安装了它时?

关于使用这些补充库,是否存在一些我不理解的基本知识?

是的。foofoo-dev可以共存。如果您是开发人员,则可能需要同时安装两者。foo-dev通常依赖于foo,因此安装它会强制foo安装。特别是,libsdl2-image-dev 依赖于取决于 libsdl2-image-2.0-0


最后,只需安装该-dev包:

sudo apt-get install libsdl2-image-dev

相关内容