web-dev-qa-db-fra.com

X11 / extensions / Xcomposite.h: Aucun fichier ou répertoire de ce type

J'ai essayé de compiler https://unix.stackexchange.com/a/228674 sous Ubuntu.

Malheureusement, avec l'erreur suivante:

/tmp/find-cursor$ make
cc find-cursor.c -o find-cursor -lX11
find-cursor.c:19:39: fatal error: X11/extensions/Xcomposite.h: No such file or directory
 #include <X11/extensions/Xcomposite.h>
                                       ^
compilation terminated.
make: *** [all] Error 1

J'ai essayé avec les suspects suivants:

$ Sudo apt-get install libxtst-dev libxss-dev libxtst6-dbg libxext6-dbg libxss1-dbg

mais toujours pas de chance en compilation. Voici l'extrait pour votre commodité:

Sudo apt-get install Mercurial
cd /tmp
hg clone https://bitbucket.org/Carpetsmoker/find-cursor
cd find-cursor
make

Résolu:

FTR: pour compiler le code ci-dessus, je devais: Sudo apt-get install libxcomposite-dev libxdamage-dev libxrender-dev et ajouter -std=gnu99 flag à cc dans le Makefile

1

Chaque fois qu'une compilation échoue avec un fichier manquant, exploitez simplement l'infrastructure pour rechercher le paquet ubuntu manquant.

apt-file search   X11/extensions/Xcomposite.h   #  cmd 1

qui revient avec

libxcomposite-dev: /usr/include/X11/extensions/Xcomposite.h

donc la solution consiste à installer ce paquet manquant

Sudo apt install libxcomposite-dev              #  cmd 2

cette technique fonctionne sur tout fichier manquant


Sur un nouvel OS si vous lancez

apt-file search   X11/extensions/Xcomposite.h  

il échouera avec une erreur

The program 'apt-file' is currently not installed. To run 'apt-file' please ask your administrator to install the package 'apt-file'

ce qui signifie simplement que vous devez effectuer une configuration unique du cache de recherche local.

Sudo apt install apt-file -y
Sudo apt-file update

relancez maintenant la recherche indiquée ci-dessus (cmd 1) puis installez le paquet (cmd 2)

7
Scott Stensland

Sur http://packages.ubuntu.com/ vous pouvez rechercher des packages contenant un fichier.

Pour X11/extensions/Xcomposite.h qui trouve libxcomposite-dev

1
Florian Diesch