在Mac OS X 10.8(Mountain Lion)上构建graphviz时找不到Xlib.h

时间:2012-07-13 06:29:42

标签: x11 graphviz homebrew osx-mountain-lion

使用自制软件安装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。

干杯。

8 个答案:

答案 0 :(得分:108)

安装XQuartz后,只需输入

即可将符号链接添加到X11安装文件夹中
ln -s /opt/X11/include/X11 /usr/local/include/X11

在终端。这也将解决问题,而无需更改任何ruby脚本。

答案 1 :(得分:28)

您需要告诉tkstubs构建(以及可能包中的其他位)以查找/opt/X11/include中的标头;这不是标准的包含路径。

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

对于合理的现代configure脚本,最好的方法是将其传递给环境变量CPPFLAGS;如果包使用另一个构建系统,或者由于其他原因这不起作用,那么你需要查看构建目录中的Makefile

答案 2 :(得分:25)

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

export CPPFLAGS=-I/opt/X11/include

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

答案 3 :(得分:5)

遇到同样的问题并在终端上运行此命令

xcode-select --install 

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

答案 4 :(得分:3)

如果您需要在CMake版本中使用它:

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

这对我有用。

答案 5 :(得分:2)

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

我已经安装了XQuartz,但我不断收到./configureERROR: Xlib not found的错误。我认为这里的答案可以解决我的问题,但他们没有!

所以,如果有人在同一条船上,我的解决方案是:

我打开了生成的config.log,发现很多错误引用了各种包含和头文件,包括X11 / Xlib.h - 这是误导性的。在日志文件的最底部是密钥,pkg-config抱怨要查找xbc.pc,并要求将其放在路径上。但是,终端上显示的错误消息对pkg-configxbc一无所知!

解决方案是添加到您的PKG_CONFIG_PATH环境变量中。我不存在,所以我刚刚export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig/(我找到的文件夹xbc.pc)。

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

TL; DR:检查config.log - 不信任终端输出!