主要参考了文章:Windows下基于cygwin安装srilm_在大海里翱翔的猪-CSDN博客
Cygwin的安装
可以直接从官网进行。安装时的镜像网站可以使用阿里云镜像:Index of /cygwin/http://mirrors.aliyun.com/cygwin/如果没有这个路径,把它添加进去。
需要安装的工具包
双击skip进行选择
-
binutils
-
gcc
-
gcc-mingw
-
gdb
-
gawk
-
make
-
tcl
-
zib
之后,把Cygwin的bin和sbin目录的路径添加到系统环境变量的Path中。添加方式:
-
右键单机此电脑,选择属性
-
点击高级系统设置
-
选择环境变量
-
在系统变量下,点击Path,选择编辑
-
点击新建,并输入地址(示例:D:\cygwin\bin)
测试Cygwin是否安装成功
在窗口输入
cygcheck -c cygwin
如果打印出Cygwin的版本和状态,并且status显示为OK,说明成功安装Cygwin。
之后依次输入
gcc --version
g++ --version
gdb --version
make --version
如果都打印出版本,证明安装成功。
输入exit退出程序。
检查安装了哪些软件包
- 检查本地安装:输入
cygcheck -c -d | grep lib
- 查询cygwin.com网站上软件包仓库的软件包,可以使用
cygcheck -p regexp
SRILM的安装
来源于GitHub - SRILM。下载后,解压到Cygwin的安装目录下。
修改文件
添加环境变量
不建议使用txy文档。可以使用Sublime Text进行编辑。
打开“\cygwin\home\[用户名].bashrc”文件,并在最后添加:
export SRILM=/SRILM-master
export MACHINE_TYPE=cygwin
export PATH=$PATH:$pwd:$SRILM/bin/cygwin
export MANPATH=$MANPATH:$SRILM/man
SRILM一行是srilm的文件夹名称。
修改Makefile文件
srilm文件夹下的Makefile文件
-
在第7行添加: SRILM = /SRILM-master
-
修改MACHINE_TYPE为:i686-m64
按照实际的机器名。使用cmd命令行输入命令uname -a 进行查询。
-
第13行左右的:include $(SRILM)/common/Makefile.common.variables,将其删除
-
并在其下面添加: include $(SRILM)/common/Makefile.machine.i686-m64
common目录下的Makefile文件
在D:\cygwin\SRILM-master\common文件夹中,找到Makefile.machine.i686-m64,打开进行修改。
-
找到第54行左右的:TCL_LIBRARY =,在其下面添加:NO_TCL = X
-
找到最后一行的:GAWK = /usr/bin/awk,修改为:GAWK = /usr/bin/gawk
测试
首先输入:
cd SRILM-master
将目录切换到srilm。之后,依次输入:
make World
make test
make all
make cleanest
如果都不报错,说明可以使用srilm。
使用Visual Studio 2017
需要编译可执行文件:
-
找到D:\cygwin\SRILM-master\visual_studio\vs2005路径下的srilm.sln,双击打开
-
编译release+x64版本的可执行文件,生成解决方案。
如果发生报错,需要做:
-
(可选)把release改为debug
-
使用Visual Studio Installer安装组件:Windows 8.1 SDK
-
安装工作负荷:三个Windows的组件、Web和云下的ASP.NET和Web开发
-
在可选组件中选择:
-
如果出现命令行错误:无法打开 元数据 文件 “platform.winmd”:同上一行,在可执行文件目录中添加:platform.winmd 文件所在目录的路径。
-
-
将可执行程序所在路径 D:\cygwin\SRILM-master\visual_studio\vs2005\x64\Debug 添加到环境变量Path
在Cygwin使用pip命令
安装pip
使用easy_install:
easy_install-2.7 -i http://mirrors.aliyun.coom/pypi/simple/ pip
使用pip命令
需要指定安装源。使用-i <网址> 进行指定。可以使用如上所示的阿里云镜像。