在Mac OS X 10.8(Mountain Lion)上构buildgraphviz时未findXlib.h

当使用自制软件来安装graphviz时,脚本到了“在tkstubs中进行安装”,然后引发以下致命错误:

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> 

我已经安装了XQuartz,因为X11已经被放入Mountain Lion,但是我不确定它是否安装正确。 Xlib.h的位置是:

 /opt/X11/include/X11/Xlib.h 

还有两个符号链接到/ opt / X11,它们是:

 /usr/X11 /usr/X11R6 

这看起来像正确的设置给你吗? 我从来没有处理X11或XQuartz,直到昨天。

干杯。

你需要告诉tkstubs构build(也可能包中的其他位)以在/opt/X11/include查找头文件; 这不是标准的包含path。

通常这通过传递-I/opt/X11/include作为附加的编译器标志来实现,但是这样做的方法依赖于编译系统。

对于合理的现代configure脚本,最好的方法是将其传递给环境variablesCPPFLAGS ; 如果程序包使用另一个编译系统,或者由于其他原因而无法工作,则需要查看Makefile目录中的Makefile

安装XQuartz之后,您可以通过input来为X11安装文件夹添加符号链接

 ln -s /opt/X11/include/X11 /usr/local/include/X11 

在terminal。 这将解决这个问题,而不会改变任何ruby脚本。

您可以在编译/链接(或brew)命令之前在shell中input:

  export CPPFLAGS=-I/opt/X11/include 

导出行将告诉编译/链接器在X11包含文件中查找/ opt / X11 / include

如果你需要这个在你的CMake版本中工作:

 if(APPLE) include_directories(AFTER "/opt/X11/include") endif() 

这对我很好。

有同样的问题,并在terminal上运行此命令

 xcode-select --install 

为我工作。 安装xQuartz后运行这个命令。

我通过将x11头文件目录复制到/ opt / local / include目录来安装它。 可能不是解决这个问题的最好方法,但又快又简单。

由于make文件正在寻找X11 / xlib.h,即它正在寻找当前目录中的X11文件夹,解决这个问题的一种方法是简单地将/ opt / X11 / include / X11目录复制到包含使文件。

我试图在OS X上从源代码编译ffmpeg的时候发现了这个线程。我需要--enable-x11grab ,而且自制--enable-x11grab不支持这个选项。

我已经安装了XQuartz,但是我一直从错误./configureERROR: Xlib not found 。 我以为这里的答案会解决我的问题,但他们没有!

所以,如果有人在同一条船上,我的解决办法是这样的:

我打开了生成的config.log ,发现许多涉及各种包含和头文件的错误,包括X11 / Xlib.h – 这是误导性的。 在日志文件的最底部是关键, pkg-config在抱怨寻找xbc.pc ,并要求把它放在path上。 但是,在terminal上显示的错误消息没有说pkg-configxbc

解决scheme是添加到您的PKG_CONFIG_PATH环境variables。 我不存在,所以我只是export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig/ (我findxbc.pc的文件夹)。

我重新configure ,一切都像一个魅力!

TL; DR:检查config.log – 不要相信terminal输出!