Section 1
friso分词器的编译问题:
首先将下载的friso压缩包解压,然后进入src文件夹,我这边使用的是mingw编译器,所以直接使用cygwin的对应的Makefile.cygwin文件,但是如果直接使用用原本的Makefile文件编译的时候,会出现这样一个错误
gcc.exe: error: unrecognized command line option '--mno-cygwin'
make: *** [share] Error 1
这是提醒无法识别的命令行选项 '--mno-cygwin' ,因此这个时候就需要将Makefile.cygwin文件的第29行的 '--mno-cygwin' 删除掉。
$(CC) $(FFLAGS) -shared $(SRCS) --mno-cygwin -o $(SH_FILE) -Wl,--output-def,friso.def,--out-implib,$(LB_FILE
接下来我们再次编译,就能成功了。期间有一个warning,如下:
friso_lexicon.c:227:24: warning: 'indexOf' defined but not used [-Wunused-function]
__STATIC_API__ fstring indexOf( fstring __str, char delimiter )
看了下警告信息,原来只是警告说这个函数并未使用。那么可以忽略掉,至此便完成了编译。
Section 2
接下来,我们该到test的环节了。。。
一开始,我们直接按照帮助文档的提示:在cmd里打下这些文字
D:\friso\src>friso -init D:\friso\friso.ini
会出现这些错误提醒
Warning: Fail to open the lexicon configuration file dict/UTF-8/friso.lex.ini
Initialized in 0.001000sec
原因是路径不正确,看了看帮助文档,说需要修改friso.ini配置文件, 于是我修改了friso.ini文件的第9行跟第21行的文本,内容如下:
friso.charset = 1
friso.lex_dir = dict/GBK/
再将src/目录下的friso.dll 跟 friso.exe 文件移动到friso/ 主目录下,cmd上也 cd ../ 然后在cmd里再次输入如下文本:
D:\friso>friso -init D:\friso\friso.ini
我的解压文件夹结构如下:
D:\friso
├─binding
│ ├─php
│ │ ├─demo
│ │ └─tests
│ └─sphinx
├─dict
│ ├─GBK
│ └─UTF-8
└─src