不论是做偏底层的嵌入式开发,还是做上层软件的开发,都可能会用到Cygwin。
简单说就是:
想要在Windows平台上,折腾Linux系统中的东西
然后才用到Cygwin去模拟Linux环境,去在Linux环境下实现各种复杂的功能和目标
此处,随便举一些例子:
就像我之前写的教程中:
详细介绍的一样,对于Docbook环境的搭建,其实是可以使用Windows下的二进制的xsltproc+fop来实现的
但是,其总体上能够实现的功能相对较弱。
而我此处,有个相对比较复杂的需求:
需要管理20多个Docbook的book
如果编译每一个book,都需要手动去输入对应的编译命令的话,相关的工作量极大且极其繁琐,且容易出错,直接就把人累死了
而通过Cygwin中的makefile来实现,就相对轻松多了。
所以后来就去花点时间,去写了对应的makefile
以实现,对于每个book下的src文件夹下,去:
make html make pdf make htmls make rtf make chm make txt
就可以对于每个book,生成其对应的不同格式的输出文件。
而在windows下面,类似的功能,我最多只能用batch批处理文件去实现,
但是却缺少了Makefile中的依赖特性,其可以自动检测所依赖的文件是否已更新,决定是否重新编译。
即,对于多个文件,尤其是中型大型等项目的管理方面,windows的batch,比linux中的makefile差的太远了。
另外,由于要生成chm等格式的文件,我此处还需要一些其他的辅助工具
比如用于转换编码的iconv,而这类好用易用的各种工具,在Linux下面,都是必备的,无需额外安装和太操心
但是如果想要在windows下使用,还要去一个个找到对应的windows下面的版本,或者找到相应的源码,自己去编译一个版本。
如此,经常需要利用到Linux下面的各种强大好用的工具,但是windows下面常常没有或者有类似的但不好用或功能很弱,
因此,才需要用到Cygwin去模拟Linux,
然后在Linux下面,利用已有的各种工具,实现各种复杂的需求的。
关于实现细节,可参考: