我已经用windows上的mingw64和msys编译了aspell以使用附魔和pyenchant,但我仍然没有任何dicts:“aspell dump dicts”什么都不返回。
我现在正在尝试的是使用来自http://gnu.c3sl.ufpr.br/ftp/aspell/dict/en/的en dict进行./configure,make和make install。
.configure成功执行,但返回:
/mingw/bin/prezip-bin.exe -d < en-common.cwl | /mingw/bin/aspell.exe --lang=en create master ./en-common.rws
Error: The file "/mingw/lib/aspell-0.60/iso-8859-1.cset" can not be opened for reading.
Makefile:108: recipe for target `en-common.rws' failed
make: *** [en-common.rws] Error 1
我已经检查了这个文件的权限(iso-8859-1.cset),停用了反病毒,用管理权限执行了msys,但没有解决问题。 该文件在任何文本编辑器中都可以正确打开。
此任务的系统配置为: Windows 8.1 x64; Mingw-64 + MSYS; Aspell 0.60
有人能帮助我吗?
感谢。
答案 0 :(得分:0)
这可能与编译aspell的方式有关。
我已经在MSYS环境下的Windows 7 x64和gcc 4.7.0(mingw32-4.7.0-posix-dwarf-rev0)下成功编译并运行aspell 0.60.61和字典aspell6-en-7.1-0 )。我还没有解决所有问题,但这是我的发现:
我使用的配置是:
$ ./configure --disable-shared --enable-static --enable-win32-relocatable
当我第一次编译aspell时,我遇到了编译错误:
common/file_util.cpp: In function 'bool acommon::need_dir(acommon::ParmString)':
common/file_util.cpp:49:32: error: 'asc_isalpha' was not declared in this scope
所以我按照本指南here(我猜你也可能也这样做)来绕过这个错误。
所有已编译和aspell都可以运行,但它会不断给我路径解决错误,包括你得到的错误,或类似
Error: The file "/usr/local/lib/aspell-0.60//usr/loc`enter code here`al/lib/aspell-0.60/en_US.multi" can not be opened for reading.
(我没有保留原始信息,但它就是这样的) 我甚至尝试使用--data-dir, - dia-dir或--local-data-dir选项,但我唯一能让它工作的时候是我在/usr/local/lib/aspell-0.60 / folder并设置--data-dir to ./
但它应该不是那样的,所以我回头看了一下file_util.cpp并发现我跳过的代码与路径处理有关。后来我发现这个Japanese article指出asc_isalpha是在asc_tyoe.hpp中定义的。所以我添加
#include "asc_ctype.hpp"
到file_util.cpp,然后再次重新编译aspell。然后我尝试编译aspell6-en-7.1-0,这次没有错误,字典编译成功。
现在的问题是aspell默认情况下仍然无法找到字典,它仍然会显示错误消息:
Error: No word lists can be found for the language "en_US".
即使aspell默认具有正确的data-dir:
$ aspell config data-dir
/usr/local/lib/aspell-0.60
但至少--data-dir选项现在可以使用了,所以我可以像这样使用aspell:
$ aspell --data-dir=/usr/local/lib/aspell-0.60/ -c test.txt
希望你也可以解决你的问题。
参考:
http://lists.gnu.org/archive/html/aspell-user/2007-10/msg00008.html
http://mikanya.dip.jp/memo/2007-09-07-1
https://www.mail-archive.com/aspell-user%40gnu.org/msg02226.html
http://osdir.com/ml/general/2014-12/msg10031.html
非常感谢这些文章/网页帮助我弄清楚如何使aspell工作