再谈文本分析系统移植

来源:互联网 发布:章子怡成名知乎 编辑:程序博客网 时间:2024/05/21 22:25

这两天做了件前段时间想做而没有空做的事,将上半年搭建的文本分析扩展之后进行各种方式的打包发布。该系统是基于CRF++的,分别经过了分词阶段,词性标注阶段,实习识别阶段,而从实现方式上也经过了单线程,多线程,线程池,线程安全,本地执行,Thrift 服务,控制台接收,文本处理等阶段,其中所含内容甚多,虽在本地可以完美执行,但以静态库或动态库的方式移植至其他服务器却会出现问题,当然代码移植还是完美的。

出现问题如下:

1.使用CRF++自带的Makefile,编译出.a和.so文件后,动态库含有软链接,使用ar命令重新打包静态库,在对库的测试用例中出现在param.cpp的三个参数的open中,对类成员变量无法赋值的问题,报Segmentation fault错。

2.自己对所有源文件编译,重新写了新的makefile,成功编译出所有.o文件,对其进行.a与.so打包,并将其在测试用例目录与/usr/lib中都拷贝了一份,还是出现了上个错误。

打包方式:

(object) : Utility.o ConfigProc.o encoder.o feature_cache.o feature.o feature_index.o param.o node.o path.o PreProcessCRFPP.o ProcessForCRFPP.o ThreadPool.o Utility.o Strtok.o   tagger.o log.o lbfgs.o FileReader.o RMM.o crf_interface.h
    g++ $(object).cpp -shared -o libcrf_test.so $^ crf_interface.h $(LIBS) $(CFLAGS)
    g++ $(object).cpp -o $@.exe $^ crf_interface.h $(LIBS) $(CFLAGS)
    ar crv libcrfpp.a *.o

 

gdb调试不通

问题待日后解决。

原创粉丝点击