Ghostscript 中 ps2pdf 命令在 windows msys 下的运行错误问题。
前两天看到了 miloyip/game-programmer 这个项目觉得特别有用,真是好东西,明确了指出了学习路线,尤其是新手。不过打开看,有些书对应的亚马逊链接是无效的,比如《Tricks of the 3D Game Programming Gurus》等书的链接都是:https://www.amazon.com/dp// 这种无效链接,于是我就 fork 了一份把这些链接都补上了,提交了一个 pull request,就看作者什么时候能通过 merge 了,修改好我就尝试编译测试,由于是直接通过 make 生成,我 windows 本机已经安装了 msys,于是我就安装了 windows 版本的:Graphviz 2.38, Ghostscript 9.16 (ps2pdf), cpdf, 安装完后把可执行文件的目录添加到 PATH 系统环境变量,Ghostscript 需要把安装目录下的 bin, lib,都添加进去;ok 以后运行发现到最后总是 提示 ps2pdfwr: gs not found;翻阅了下本地 manual Ps2pdf.htm,其中写道:
All of these scripts actually call a script named ps2pdfwr or ps2pdfxx. The Unix ps2pdfwr script assumes that the Ghostscript executable is named gs; it is unlikely that you will need to change this. The DOS and MS Windows ps2pdfxx.bat script uses the value of the GSC environment variable, if defined, as the name of the executable; otherwise the script assumes the executable is named gswin32c. So in these environments, if the executable has a different name, you must set GSC to the name of the executable. |
即是说 ps2pdf 最终就是调用 ps2pdfwr 或者 ps2pdfxx,这两个脚本在 unix 下使用可执行文件:gs,不需要任何修改,但在 dos 和 windows 下 ps2pdfxx.bat 先使用 GSC 环境变量的值,如果未定义此环境变量则默认使用的可执行文件为 gswin32c,所以如果你安装的是64位话,可执行文件是 gswin64c.exe,所以需要添加名称 GSC 的环境变量,值为 gswin32c。
但是按照上述步骤操作后,依然提示同样错误,打开 ps2pdfxx 后,脚本为:
GS_EXECUTABLE=gs
gs="`dirname \"$0\"`/$GS_EXECUTABLE"
if test ! -x "$gs"; then
gs="$GS_EXECUTABLE"
fi
GS_EXECUTABLE="$gs" ... 省略 ... exec "$GS_EXECUTABLE" $OPTIONS -q -P- -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr "-sOutputFile=$outfile" $OPTIONS -c .setpdfwrite -f "$infile"
这里没有使用 GSC 环境变量,而是直接使用了 gs 作为可执行文件名称,外部修改 GS_EXECUTABLE 的值,或者设置成环境变量也没用,因为一开始就被修改成 "gs" 了,不过这个问题直接使用 cmd 命令行是没有问题的,只在 msys 命令行下有这个错误,于是我就直接加了个名为 gs 的 shell 脚本放到 lib 下,内容为:
gs="`dirname \"$0\"`/$GSC"
if test ! -x "$gs"; then
gs="$GSC"
fi
exec "$gs" "$@"
重新在 msys 命令行中 make 或者直接使用 ps2pdf 命令来测试,之前的 "gs not found" 的错误不见了,文档的整个编译生成过程顺利通过。
Ghostscript 中 ps2pdf 命令在 windows msys 下的运行错误问题。的更多相关文章
- 解决Windows 10下Wireshark运行问题
解决Windows 10下Wireshark运行问题在Windows 10下,安装Wireshark时候,提示WinPcap不被系统系统支持.这是由于最新版的WinPcap 4.1.3只支持到Wind ...
- windows 环境下通过运行快速启动程序
在windows环境下,我们可以使用一些系统内置的快捷键来快速启动我们想要的应用程序,我这里举例几个我经常使用的,比如: 快捷键 功能说明 services.msc 查看系统服务 gpedit.ms ...
- 解决Ubuntu中vi命令的编辑模式下不能正常使用方向键和退格键的问题
在Ubuntu中,进入vi命令的编辑模式,发现按方向键不能移动光标,而是会输出ABCD,以及退格键也不能正常删除字符.这是由于Ubuntu预装的是vim-tiny,而我们需要使用vim-full,解决 ...
- Windows系统下安装运行Kafka
一.安装JAVA JDK 1.下载安装包 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- wampserver - windows服务器下php运行环境配置
之前一直在通过windows server IIS跑php程序,直到后来,发现了她 “wampserver", 一个法国的windows+apache+php+mysql部署包. 感觉挺好用 ...
- 为cmd中的命令添加别名,以解决java:错误: 编码 GBK 的不可映射字符 (0xAF)
使用sublineText3编写了java代码,通过cmd javac编译 提示 错误:编码GBK的不可映射字符 解决方法 使用javac -encoding UTF-8 Person.java 结果 ...
- windows 环境下切换 python2 与 pythone3 以及常用命令
windows 环境下切换运行时的 python2 与 pythone3 当需要 python2 时执行:py -2 当需要 python3 时执行:py -3 windows下通过cmd切换pyth ...
- 代理server的理解(1):Windows环境下的代理server设置
浏览器中的代理server设置 Windows系统接口提供的代理server设置是一个全局的代理server的设置,如图所看到的,这里就不多解释: 各个浏览器在使用代理设置的时候,能够主动地获代替理设 ...
- Windows环境下制作MACOS X U盘安装盘
前两天在朋友的MAC BOOK AIR上胡乱操作时把原来安装好的双系统搞坏了,一不小心又把硬盘格式化了,导致MAC系统也没了,于是只能重新安装MACOS系统,并根据网友提供的教程,在MACOS安装OK ...
随机推荐
- 最简单的图文教程,几步完成Git的公私钥配置
操作的前提是,你有git账号,并且在自己的电脑上已经装好了TorToiseGit工具.下面开始简单的教程: 第一步:Windows-->所有程序-->TortoiseGit-->Pu ...
- 【BZOJ2946】公共串 [SAM]
公共串 Time Limit: 3 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description 给出几个由小写字母构成的单词,求它们最 ...
- bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形——极角排序
Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责.从她的守卫塔向下瞭望简直就是一件烦透了的事情.她决定做一些开发智力的小练习,防止她 ...
- python学习笔记(五)数值类型和类型转换
Python中的数值类型有: 整型,如2,520 浮点型,如3.14159,1.5e10 布尔类型 True和False e记法: e记法即对应数学中的科学记数法 >>> 1.5e1 ...
- 【洛谷 P2763】 试题库问题(最大流)
题目链接 6/23 这是网络流23题里我第一个没看题解自己写出来一遍过的.. 这题应该是最简单的模型了吧. 从源点向每个类型连一条流量为这个类型要的题数,再从每个类型向可以属于这个类型的所有试题连一条 ...
- 为什么Windows7打开项目的方式是灰的不能修改
http://jingyan.baidu.com/article/d3b74d64a964691f77e60900.html 进入组策略编辑器,即运行gpedit.msc,进入“用户配置”-“管理模板 ...
- python基础===tkinter学习链接
http://effbot.org/tkinterbook/tkinter-classes.htm
- GitHub创建项目入门学习
第一次创建git项目注意事项还是挺多了,这里就写个操作步骤,方便以后查看. 网页部分 1.打开自己的主页,点击“New repository”创建远程仓库. 2.填写信息 本地部分 前提: 下载git ...
- 使用UpdatePanel时FileUpload失效的问题
出处:http://www.cnblogs.com/caicainiao/archive/2010/12/08/1900377.html 1.使用UpdatePanel后,FileUpload的Has ...
- 刷新SqlServer数据库中所有的视图
ALTER PROCEDURE sp_refallview AS --刷新所有视图 DECLARE @ViewName VARCHAR(MAX); DECLARE @i INT; ; DECLARE ...