Build 在linux上生成ghostscript时出错

Build 在linux上生成ghostscript时出错,build,installation,x11,ghostscript,configure,Build,Installation,X11,Ghostscript,Configure,我正试图在我托管的linux机器上构建Ghostscript(V9.06),以便可以操作PDF文件。 使用/configure和make时一切正常,但随后出现以下错误: ../gs/base/x_.h:135:29: error: X11/Intrinsic.h: No such file or directory 在此之后,我得到了一个包含有趣的字符的错误列表,如下所示: ../gs/base/gdevx.c:1138: error: âgx_device_Xâ has no member

我正试图在我托管的linux机器上构建Ghostscript(V9.06),以便可以操作PDF文件。 使用
/configure
make
时一切正常,但随后出现以下错误:

../gs/base/x_.h:135:29: error: X11/Intrinsic.h: No such file or directory
在此之后,我得到了一个包含有趣的
字符的错误列表,如下所示:

../gs/base/gdevx.c:1138: error: âgx_device_Xâ has no member named âtextâ
这里有什么问题,有什么解决办法?我认为这是一个符号链接问题,所以我检查了X11目录的位置,并运行了以下命令:

 ln -s X11 /usr/include/X11
我再次运行了
make
,但没有什么不同。有什么想法吗

编辑 下面是错误的前几行。。。其余的都差不多:

../gs/base/x_.h:135:29: error: X11/Intrinsic.h: No such file or directory
../gs/base/x_.h:136:30: error: X11/StringDefs.h: No such file or directory
../gs/base/x_.h:137:25: error: X11/Shell.h: No such file or directory
In file included from ../gs/base/gdevx.c:33:
../gs/base/gdevx.h:30: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âgdev_x_resourcesâ
../gs/base/gdevx.h:32: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âgdev_x_fallback_resourcesâ
../gs/base/gdevx.h:119: error: expected specifier-qualifier-list before âPixelâ
../gs/base/gdevx.c:217: warning: excess elements in struct initializer
../gs/base/gdevx.c:217: warning: (near initialization for âgs_x11_deviceâ)
../gs/base/gdevx.c:217: warning: excess elements in struct initializer
../gs/base/gdevx.c:217: warning: (near initialization for âgs_x11_deviceâ)
../gs/base/gdevx.c:217: error: extra brace group at end of initializer
../gs/base/gdevx.c:217: error: (near initialization for âgs_x11_deviceâ)
最后几行是:

make[2]: *** [obj/gdevx.o] Error 1
make[2]: Leaving directory `/root/ghostpdl-9.06/main'
make[1]: *** [pdl-product] Error 2
make[1]: Leaving directory `/root/ghostpdl-9.06/main'
make: *** [pcl] Error 2

构建Ghostscript不需要X11,但需要告诉它不要这样做。如果运行
/configure--without-x
,则GS构建将不包含任何依赖于x的内容(例如显示设备),并且不会查找x库


只要您不想使用应该可以工作的X11或X11a设备。

您不需要X11来构建Ghostscript,但您需要告诉它不要这样做。如果运行
/configure--without-x
,则GS构建将不包含任何依赖于x的内容(例如显示设备),并且不会查找x库


只要您不想使用应该可以工作的X11或X11a设备。

结果是我没有正确安装X软件包

我跑

yum provides \*/Intrinsic.h
yum provides \*/StringDefs.h
yum provides \*/Shell.h
找到从哪里获取这些文件,然后

libXt-devel-1.0.7-1.el6.x86_64 : X.Org X11 
对他们每个人来说。所以我安装了它:

yum install libXt-devel

然后回到我的ghostscript目录,再次运行
make
/configure
make
,瞧。成功了。

结果是我没有正确安装X软件包

我跑

yum provides \*/Intrinsic.h
yum provides \*/StringDefs.h
yum provides \*/Shell.h
找到从哪里获取这些文件,然后

libXt-devel-1.0.7-1.el6.x86_64 : X.Org X11 
对他们每个人来说。所以我安装了它:

yum install libXt-devel
然后回到我的ghostscript目录,再次运行
make
/configure
make
,瞧。它成功了。

适用于Ubuntu用户

sudo apt get安装libxt dev libxaw7 dev

对于Ubuntu用户

sudo apt get安装libxt dev libxaw7 dev


至少,您应该首先运行
make clean
,然后再运行
/configure
make
然后,这也完全取决于你的主人如何准确地设置你的环境。你在家吗?或者它是根服务器?我也用过makeclean,但没有区别。不,我不在chroot中,我只是VPS主机服务器上的root用户。我发现X11位于以下目录中:/etc/X11、/usr/include/X11、/usr/shared/X11和另外一个目录(现在不记得了),但我选择了/usr/include,因为它的内容最多,我相信我之前在那里安装了一些东西。这个错误甚至与X11有关吗?还是有其他问题?我正在编辑我的问题以添加一些错误。您可能需要安装开发X11包(可能称为X11-devel或xlib-devel或类似的东西)。有趣–字符表示区域设置和终端编码不匹配。并删除该符号链接。您的X11目录是否确实包含
固有.h
StringDevs.h
Shell.h
头文件?这是什么Linux发行版?确实不是!他们都没有。我想我必须确保X11的正确安装。至少,您应该首先运行
make clean
,然后再运行
/configure
make
然后,这也完全取决于你的主人如何准确地设置你的环境。你在家吗?或者它是根服务器?我也用过makeclean,但没有区别。不,我不在chroot中,我只是VPS主机服务器上的root用户。我发现X11位于以下目录中:/etc/X11、/usr/include/X11、/usr/shared/X11和另外一个目录(现在不记得了),但我选择了/usr/include,因为它的内容最多,我相信我之前在那里安装了一些东西。这个错误甚至与X11有关吗?还是有其他问题?我正在编辑我的问题以添加一些错误。您可能需要安装开发X11包(可能称为X11-devel或xlib-devel或类似的东西)。有趣–字符表示区域设置和终端编码不匹配。并删除该符号链接。您的X11目录是否确实包含
固有.h
StringDevs.h
Shell.h
头文件?这是什么Linux发行版?确实不是!他们都没有。我想我必须确保X11的正确安装。如果您的托管服务器没有运行任何工作的X11应用程序,那么构建Ghostscript来支持X11也没有意义。在这种情况下,您最好按照KenS的建议执行:运行
/configure--without-x
/configure--with-x=no
。如果这样做有效,您还应该卸载添加的额外软件包。这样你会得到一个更干净、更精简的系统。实际上我需要X11——我使用的是wkhtmltopdf,没有X11它无法呈现某些字体和阿拉伯字符。我想Ghostscript不需要X11作为外来字体?我知道我可以在没有X11的情况下构建它,但是以后不需要它们吗?Ghostscript不需要X11作为字体。仅当您希望在屏幕上显示PDF或PostScript文件时,才需要X11(
-sDEVICE=X11
-sDEVICE=x11alpha
等)
wkhtmltopdf
的工作原理不同——它至少需要一个虚拟帧缓冲区(或X11)来做任何有用的事情。(老实说,这就是我最讨厌wkhtmltopdf的地方……)如果托管服务器没有运行任何正常工作的X11应用程序,那么构建Ghostscript来支持X11也毫无意义。在这种情况下,您最好按照KenS的建议执行:运行
/configure--without-x
/configure--with-x=no
。如果这样做有效,您还应该卸载添加的额外软件包。你会得到一个惊喜