Récemment, j'ai joué avec la bibliothèque SDL et je voulais commencer à utiliser libsdl2-image-2.0-0 avec SDL. J'ai essayé de faire fonctionner cela avec Ubuntu 15.04. J'ai installé le paquet en utilisant
Sudo apt-get install libsdl2-image-2.0-0
L’installation a semblé bien se dérouler, mais lorsque j’essaie d’inclure la bibliothèque d’images dans mon code C++ avec
#include <SDL2/SDL_image.h>
Je reçois le message d'erreur "Erreur irrécupérable: SDL2/SDL_image.h: Aucun fichier ou répertoire de ce type". pas ici. J'ai ensuite essayé de comprendre où la bibliothèque utilisait
apt-file search SDL_image.h
Quand je fais ça
libsdl-image1.2-dev: /usr/include/SDL/SDL_image.h
libsdl2-image-dev: /usr/include/SDL2/SDL_image.h
les deux apparaissent comme des résultats. C'est étrange pour moi puisque je n'ai pas installé libsdl2-image-dev. De même, lorsque j'essaie de voir/usr/include/SDL2 /, le dossier n'apparaît même pas, ce qui ne fait qu'ajouter à ma confusion.
J'ai ensuite essayé de supprimer libsdl2-image-dev pour pouvoir installer libsdl2-image-2.0-0, mais lorsque je lance la commande
Sudo apt-get remove libsdl2-image-dev
Je reçois
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.
et quand j'essaie d'exécuter la commande
Sudo apt-get install libsdl2-2.0-0
Je finis par obtenir
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.
Donc, fondamentalement, je ne peux pas localiser cette bibliothèque et je ne peux donc pas la lier correctement à mon code. Existe-t-il un moyen plus fiable de localiser cette bibliothèque et y a-t-il quelque chose de fondamental que je ne comprends pas en ce qui concerne l'utilisation de ces bibliothèques supplémentaires?
C'est étrange pour moi puisque je n'ai pas installé libsdl2-image-dev. De même, lorsque j'essaie de voir/usr/include/SDL2 /, le dossier n'existe même pas, ce qui ajoute encore à ma confusion.
apt-file
cherche dans une base de données le contenu des paquets disponibles. Il n’ya donc rien de surprenant au fait qu’il affiche un paquet que vous n’avez pas installé.
J'ai ensuite essayé de supprimer libsdl2-image-dev pour installer libsdl2-image-2.0-0.
Pourquoi pensez-vous que vous devez supprimer l'un pour installer l'autre, en particulier lorsque vous l'avez déjà installé?
y a-t-il quelque chose de fondamental que je ne comprends pas en ce qui concerne l'utilisation de ces bibliothèques supplémentaires?
Oui. foo
et foo-dev
peuvent coexister. Si vous êtes développeur, vous devrez probablement installer les deux. foo-dev
dépend souvent de foo
; son installation oblige donc foo
à être installé. En particulier, libsdl2-image-dev
dépend delibsdl2-image-2.0-0
.
Pour finir, installez simplement le paquetage -dev
:
Sudo apt-get install libsdl2-image-dev