使用自制软件安装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。
干杯。
答案 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)
答案 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,但我不断收到./configure
:ERROR: Xlib not found
的错误。我认为这里的答案可以解决我的问题,但他们没有!
所以,如果有人在同一条船上,我的解决方案是:
我打开了生成的config.log
,发现很多错误引用了各种包含和头文件,包括X11 / Xlib.h - 这是误导性的。在日志文件的最底部是密钥,pkg-config
抱怨要查找xbc.pc
,并要求将其放在路径上。但是,终端上显示的错误消息对pkg-config
或xbc
一无所知!
解决方案是添加到您的PKG_CONFIG_PATH
环境变量中。我不存在,所以我刚刚export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig/
(我找到的文件夹xbc.pc
)。
我重新configure
,一切都像魅力一样!