最近我一直在研究 SDL 库,并想开始将 libsdl2-image-2.0-0 与 SDL 一起使用。我一直在尝试让它在 Ubuntu 15.04 上运行。我已经使用安装了该包
sudo apt-get install libsdl2-image-2.0-0
Run Code Online (Sandbox Code Playgroud)
安装似乎完全正常,但是当我尝试将图像库包含在我的 C++ 代码中时
#include <SDL2/SDL_image.h>
Run Code Online (Sandbox Code Playgroud)
我收到错误“致命错误:SDL2/SDL_image.h:没有这样的文件或目录”我去查看了 SDL2 基础库所在的位置 /usr/local/include/SDL2 ,正如错误消息所示 SDL_image.h 是不在那里。然后我试图找出图书馆在哪里使用
apt-file search SDL_image.h
Run Code Online (Sandbox Code Playgroud)
当我这样做时
libsdl-image1.2-dev: /usr/include/SDL/SDL_image.h
libsdl2-image-dev: /usr/include/SDL2/SDL_image.h
Run Code Online (Sandbox Code Playgroud)
两者都显示为结果。这对我来说很奇怪,因为我没有安装 libsdl2-image-dev。另外,当我尝试查看 /usr/include/SDL2/ 时,该文件夹甚至似乎不存在,这只会增加我的困惑。
然后我尝试删除 libsdl2-image-dev 这样我就可以安装 libsdl2-image-2.0-0 但是当我运行命令时
sudo apt-get remove libsdl2-image-dev
Run Code Online (Sandbox Code Playgroud)
我明白了
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.
Run Code Online (Sandbox Code Playgroud)
当我尝试运行命令时
sudo apt-get install libsdl2-2.0-0
Run Code Online (Sandbox Code Playgroud)
我最终得到
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.
Run Code Online (Sandbox Code Playgroud)
所以基本上我无法找到这个库在哪里,所以我无法将它正确链接到我的代码。是否有更可靠的方法来定位该库的位置,以及在使用这些补充库方面是否有一些我不理解的基本内容?
这对我来说很奇怪,因为我没有安装 libsdl2-image-dev。另外,当我尝试查看 /usr/include/SDL2/ 时,该文件夹甚至似乎不存在,这只会增加我的困惑。
apt-file使用数据库搜索可用软件包的内容,因此它显示您尚未安装的软件包也就不足为奇了。
然后我尝试删除 libsdl2-image-dev 这样我就可以安装 libsdl2-image-2.0-0
为什么您认为必须删除其中一个才能安装另一个,尤其是当您已经安装了它时?
关于使用这些补充库,是否有一些我不理解的基本内容?
是的。foo并且foo-dev可以共存。如果您是开发人员,您可能需要安装两者。foo-dev通常取决于foo,因此安装它foo也会强制安装。特别是,libsdl2-image-dev 取决于 libsdl2-image-2.0-0.
最后,只需安装该-dev软件包:
sudo apt-get install libsdl2-image-dev
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17350 次 |
| 最近记录: |