Lorsque vous utilisez homebrew pour installer graphviz, le script arrive au point de "Faire l'installation dans tkstubs", puis génère l'erreur fatale suivante:
In file included from tkStubLib.c:15:
/usr/include/tk.h:78:11: fatal error: 'X11/Xlib.h' file not found
#include <X11/Xlib.h>
J'ai installé XQuartz car X11 a été supprimé dans Mountain Lion, mais je ne sais pas s'il est installé correctement. L'emplacement de Xlib.h est:
/opt/X11/include/X11/Xlib.h
Il existe également deux liens symboliques vers/opt/X11, ce sont:
/usr/X11
/usr/X11R6
Est-ce que cela ressemble à la configuration correcte pour vous? Je n'ai jamais eu affaire à X11 ou XQuartz avant hier.
À votre santé.
Vous devez indiquer à la génération tkstubs
(et éventuellement à d'autres bits du package) de rechercher des en-têtes dans /opt/X11/include
; ce n'est pas sur le chemin d'inclusion standard.
Habituellement, ceci est réalisé en passant -I/opt/X11/include
comme indicateur de compilation supplémentaire, la méthode pour le faire dépend cependant du système de construction.
Pour les scripts configure
raisonnablement modernes, la meilleure approche consiste à le passer dans la variable d'environnement CPPFLAGS
; si le package utilise un autre système de construction ou que cela ne fonctionne pas pour une autre raison, vous devez regarder le Makefile
dans le répertoire de construction.
Après avoir installé XQuartz, vous pouvez ajouter un lien symbolique vers votre dossier d'installation X11 en entrant simplement
ln -s /opt/X11/include/X11 /usr/local/include/X11
dans le terminal. Cela résoudra également le problème sans modifier aucun script Ruby.
Vous pouvez entrer dans votre Shell avant la commande de compilation/lien (ou infusion):
export CPPFLAGS=-I/opt/X11/include
La ligne d'exportation indiquera au compilateur/éditeur de liens de rechercher dans/opt/X11/include pour les fichiers d'inclusion X11
Eu le même problème et exécuter cette commande sur le terminal
xcode-select --install
travaillé pour moi. Exécutez cette commande après avoir installé xQuartz .
Si vous en avez besoin pour travailler dans vos builds CMake:
if(Apple)
include_directories(AFTER "/opt/X11/include")
endif()
Cela a bien fonctionné pour moi.
Je l'ai fait installer en copiant le répertoire du fichier d'en-tête x11 dans le répertoire/opt/local/include. Probablement pas la meilleure façon de contourner ce problème, mais rapide et facile.
Étant donné que le fichier make recherche X11/xlib.h, c'est-à-dire qu'il recherche le dossier X11 dans le répertoire en cours, une façon de résoudre ce problème consiste à copier simplement le répertoire/opt/X11/include/X11 dans le répertoire qui contient faire un fichier.
J'ai trouvé ce fil en essayant de compiler ffmpeg depuis la source sous OS X. J'avais besoin de --enable-x11grab
Et la version homebrew ne prend pas en charge cette option.
J'avais déjà installé XQuartz mais je continuais à recevoir des erreurs de ./configure
: ERROR: Xlib not found
. Je pensais que les réponses ici résoudraient mon problème, mais ce n'est pas le cas!
Donc, si quelqu'un est jamais dans le même bateau, ma solution était la suivante:
J'ai ouvert le config.log
Généré et j'ai trouvé beaucoup d'erreurs faisant référence à divers fichiers d'en-tête et d'inclusion, y compris X11/Xlib.h - cela est trompeur. Tout en bas du fichier journal se trouvait la clé, pkg-config
Se plaignait de rechercher xbc.pc
, Et a demandé qu'il soit placé sur le chemin. Cependant, le message d'erreur qui s'affiche sur le terminal ne dit rien sur pkg-config
Ou xbc
!
La solution consiste à ajouter à votre variable d'environnement PKG_CONFIG_PATH
. Le mien était inexistant, donc je viens de faire export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig/
(Le dossier où j'ai trouvé xbc.pc
).
J'ai réanimé configure
et tout a fonctionné comme un charme!