web-dev-qa-db-fra.com

Comment installer le paquet Xaw avec des fichiers d'en-tête?

J'ai cette erreur sur Ubuntu 14.04:

checking for X... libraries , headers /usr/include/X11/
configure: error: Cannot find required Xaw header file Box.h; PDCurses cannot be configured

Comment puis-je le réparer?

4
Sebastian Milhas

La fonctionnalité intéressante d'ubuntu est la possibilité de rechercher des bibliothèques ... vous avez besoin de Xax avec des fichiers d'en-tête ... chaque paquet donnant des en-têtes se termine par -dev ... lors d'une recherche de terminal en émettant:

apt-cache search  Xaw  # any library will start with lib and end with dev

ici, je mets toutes ces restrictions sur la même ligne

apt-cache search  Xaw | grep lib | grep -i Xaw | grep dev

sortie

libxaw7-dev - X11 Athena Widget library (development headers)
libxaw3dxft8-dev - Extended version of Xaw3d with support for UTF8 (Development files)

choisissez ci-dessus la liste la plus proche ... qui est

libxaw7-dev  # desired package - starts with lib has xaw ends with dev

alors émettez ceci pour installer

Sudo apt-get install libxaw7-dev

une fois installé, lancez ceci pour lister les fichiers contenus dans le paquet (pour voir les fichiers d'en-tête)

 dpkg -L libxaw7-dev
4
Scott Stensland

Il semble qu’aucune réponse n’ait été acceptée à ce jour ... Essayons donc: sur ma machine Ubuntu prête à l'emploi, j'installe d'abord le package de développement nécessaire avec les en-têtes:

Sudo apt-get install libxaw7-dev

Ensuite, je dois indiquer au script ./configure l'emplacement correct dans ces fichiers de développement. Sur ma machine, il s'agit de /usr/lib/x86_64-linux-gnu. Vous obtenez ceci de apt-cache show libxaw7. Avec cette connaissance, appelez

./configure --x-libraries=/usr/lib/x86_64-linux-gnu
2
Clemens

TL; DR: Installer libxaw7-dev = Install libxaw7-dev .

Il semble que vous construisiez un logiciel à partir du code source, et que le logiciel que vous construisez n’est pas Xaw lui-même, mais plutôt utilise Xaw by lien contre il.

Pour créer un logiciel lié à une bibliothèque, vous devez installer les fichiers d’en-tête de cette bibliothèque (c’est ce que dit votre message d’erreur - "Impossible de trouver le fichier d’en-tête Xaw requis Box.h" - vous dit que vous n’avez pas). .

Dans Ubuntu, les fichiers d’en-tête sont fournis par des paquets distincts, dont le nom se termine par _-dev_. Dans ce cas, vous avez besoin de libxaw7-devInstall libxaw7-dev . (Vous avez également besoin de libxaw7Install libxaw7 , mais si vous ne l'avez pas déjà, il sera installé automatiquement lorsque vous installerez le package _-dev_ correspondant. En revanche, l’installation de it sera not installe automatiquement son package _-dev_.)

Vous pouvez installer libxaw7-devInstall libxaw7-dev dans le centre logiciel, ou en exécutant:

_Sudo apt-get update
Sudo apt-get install libxaw7-dev
_

Bien que vous n’ayez pas à installer _libxaw7_ explicitement, vous pouvez le faire pour que ce ne soit pas automatiquement supprimé si le package _-dev_ est ultérieurement désinstallé et qu'aucun autre package ne déclare dépendance dessus. (En règle générale, le gestionnaire de paquets ne connaît pas le logiciel que vous avez construit et installé manuellement à partir du code source.) Si vous souhaitez le faire, remplacez la deuxième ligne par:

_Sudo apt-get install libxaw7-dev libxaw7
_

Ou alors, exécutez simplement _Sudo apt-get install libxaw_ ou _Sudo apt-mark manual libxaw7_, si vous avez déjà installé _libxaw7-dev_.

Dans le cas de cette bibliothèque particulière (_libxaw7_), il était facile de deviner le nom du paquet contenant ses fichiers d'en-tête _libxaw7-dev_. Parfois, ce n'est pas si facile. Dans ce cas, ou en général pour savoir quel paquet officiel Ubuntu fournit un fichier (dont vous connaissez le nom de fichier), vous pouvez rechercher le Base de données de paquets Ubunt , sous "Rechercher le contenu des paquets".

Cela révèle qu'un certain nombre de paquets fournissent des fichiers avec ce nom ou un nom similaire. Cependant, un seul des résultats de la recherche fournit un fichier d’en-tête pour Xaw: libxaw7-dev (Le fichier est _/usr/include/X11/Xaw/Box.h_.)

Cette recherche montre autres fichiers d'en-tête associés fournis par deux autres packages associés, ce qui, à mon avis, n'est pas nécessaire, car votre message d'erreur indique: "Impossible de trouver nécessaire Xaw en-tête "(et pas Xaw3d ) == ou Xaw3dxft ). Toutefois, si vous avez besoin des fichiers _Box.h_ de ces bibliothèques associées, ils sont fournis par xaw3dg-devInstall xaw3dg-dev et xpaint-devInstall xpaint-dev forfaits.

1
Eliah Kagan