VS2008 lemur-4.12
6月4号,我从http://sourceforge.net/projects/lemur/files/lemur/lemur-toolkit-4.12/下载了两个lemur project 4.12的包,一个是开源代码lemur-4.12.tar.gz,另一个是安装程序lemur-4.12-install.exe。下面我来比较用这两种方式来在VS2008上配置。先解压lemur-4.12.tar.gz到lemur1,然后安装lemur-4.12-install.exe到lemur2,过程中依然是选择FULL模式。
首先比较一下lemur1和lemur2。lemur2中包含bin,doc,include,lib四个文件夹,他们在customer模式下安装是也存在,因此认为他们是提供客户功能的。其中bin里是应用程序,doc是说明文档,include里是各种.h文件,lib里有一个lemur.lib库文件。其次有四个文件夹CSharp,GUI,javadoc,windoc,这几个不说。最后一个也是最重要的文件夹src很明显是源代码,打开与lemur1对比,发现是一模一样的。这样lemur1和lemur2的关系就明确了。
然后开始用VS2008分别尝试build(编译,连接)两种方式的lemur project。先尝试lemur1。用VS2008打开lemur1下的Lemur-VS2008.sln,在“解决方案管理器”中我们看到这一个大的解决方案共有53个项目。好,debug模式下果断点“生成解决方案(build)”,然后build的过程大约耗时3-5分钟,这时“输出”窗口中显示各种warning和error。最后所有error都指向一处"LINK : fatal error LNK1181: cannot open input file '..\lemur\debug\lemru.lib’ ”,即在相对路径(即src文件夹)下的lemur\debug\lemru.lib貌似出了问题,我找到这个地方,发现没有lemru.lib这个文件,也就是刚才的build并没有将这个项目lemur的代码连接成功,没有连接成.lib文件。那么我单独build一下这个lemur项目。这时又有error:"LINK : fatal error LNK1181: cannot open input file '..\parsing\debug\parsing.lib’ ",我再单独build这个parsing项目,然后又有n个error,这些error指向一个地方就是Arabic_Stememer.cpp文件里三个const char *Arabic_Stemmer::defarticles[] / suffixes[] / stopwords[] 貌似初始化有错,按网上前辈们的指点分别初始化为{"\0"},{"\0"},{ NULL },好了,再build项目parsing,成功!再build项目lemur,成功。好了,以上两个项目都连接完成,现在再build整个解决方案,这时又一个error,说是lemur_jni的,之前网上前辈们说要配置正确的java路径,说的应该就是针对这个lemur_jni的error了,好,我选中这个项目lemur_jni,属性-配置属性/c/c++/常规-附加包含目录配置正确的java接口路径。好了,最后一次build解决方案,ok!成功!没有报错!没有error!
等等,就这样就算配置成功了么,好像太容易了吧,而且好像只有配置一个java接口而已啊。确实好像和网上前辈们说的不太一样,或许我有几个地方给忽略了,不过先这样吧,毕竟已经build成功了啊。
因为lemur2中的src和lemur1是一样的,所以lemur2就照上面的如法炮制了。
今天是2013年3月18号,近一年没弄lemur了,今天有同学来找,所以又把原始的程序编译了一下,发现原程序里有一句:"lemur/lemur-compat.hpp",而我去年编译成功的程序里没有这个句里面的“lemur/”,所以我猜当时我是手动删掉了,可能因为觉得这个小细节不重要就没有记录下来。
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]