这几天帮Doctor安装一个访问麻省理工学院MIT--HIT心电数据库的软件。由于这个软件是MIT以linux下开源软件形式提供的,因此有三种方法来用这个软件:一是在windows下安装cygwin,模拟unix的运行环境,再运行WAVE这个基于XView的linux软件;二是直接在linux系统下安装运行;三是自己在windows下用编程工具做个类似WAVE的软件,对MIT的网络数据库访问读取并识别心电图等数据库文件。
第一种方法很好做,只要按照提示一步一步来就行了,但是第二种方法搞的时候确实遇到了难题,究其原因还是对linux不够熟悉造成的,一些基本的东西都不会。。。在这里把解决过程写下来,作为一次教训,也惟恐自己这两天学到的linux操作知识忘记,故记之。
主要内容及安装方法参考www.physio.org,在这里要下载几个包,其中最重要的是WFDB.tar.gz,这里面有
- WFDB library: an API for access to PhysioBank
- WFDB applications: command-line tools for signal processing and automated analysis
- WAVE: software for viewing, annotation, and analysis of signals
这三样法宝,另外还要下载XView rpm包,因为WAVE这个软件是基于XView显示心电图的,另外还要用到的gcc,libcurl我的Red Hat9都自带了,所以就不用下了,按照步骤开始./configure,make,问题接踵而至,编译通不过,出现两个错误,信息显示的是wfdbio.c这个文件的第1100行里面有两个identifier未定义(找错方法!开始都不知道往Error信息上面看,晕~~)。于是就到解压后的包里找CURLLOPT_HTTPAUTH和CURAUTH_ANY这两个“identifier”,一看,原来这里是www_init程序里面的,才彻悟原来这个WAVE软件还是连网的,直接从网络数据库获取心电图,因此才用到了libcurl,百度之后才知道libcurl这个东东原来是个客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,跨平台,支持Windows,Unix,Linux等,线程安全,支持Ipv6。其间同学又试了一下,把用到这两个idendifier的语句屏蔽,再make,果然可以通过,也产生了wfdbio.o,虽然后面也有test failed,但是最后打开WAVE软件成功了,有界面显示了,但就是没心电图出来,原因还是因为那条语句是HTTP验证要用到的,没有那条语句也就没连上网啊。
最后经过搜索,在usr/include/curl下找到curl.h这个头文件,发现里面确实没有那两个东东的宏定义,wfdbio.c里面的其他东西都有定义过。然后回到命令行输入curl --version才明白,原来我的red hat9的curl版本居然是7.9.8的,太落后了啊,physionet网站上提供的虽不是最新版本但也是7.14.0和7.15.3的了,晕~~down了7.14.0后,我先看了一下里面的curl.h这个文件,靠,有50多K大,而7.9.8的才20+K,而且里面果然有我所需要的CURLLOPT_HTTPAUTH和CURAUTH_ANY等东西,然后我把有这两个东西相关的语句(其实就是两个define)全部复制过去,再编译wfdb包,这下果然通过了,但结果还是WAVE连不上网,心想要么是改了curl7.9.8后还要make?要么是curl这个软件还有别的东东要升级啊,毕竟7.9.8太落后了,没时间去深究是哪个原因了,着手升级curl了。本想从网上搜一些关于curl的卸载与更新升级的教程,但搜了大半个晚上还是没搜到,只是得知curl这个RPM包在系统里面是与别的几个软件有关联的(用rpm -e命令卸载的时候有提示),那几个软件是php,ssl之类的东东,反正不懂,也不敢强行卸载了。于是就是直接安装下载的新版本的包了,./configure,make,make install一路下来之后本以为安装好了,但是curl --version一看还是7.9.8,晕~~~TNND,不管了,再去编译wfdb包,hoho~~~居然通过了,这说明新版本的curl还是起了作用了的,但就是报了一大堆错,看了一下都是一个错误:error while loading shared libraries:libcurl.so.3,之后网上搜了一下这个问题,把/usr/loacal/lib下的libcurl.so.3与libcurl.so.3.0.0复制到/usr/lib下面(这里面只有libcurl.so.2等等),这里还要说明一下:只复制libcurl.so.3是不行的。最后终于OK了,虽然搞不清楚curl怎么升级,但是现在WAVE终于可以用了。估计Fedore版本的linux不会出现这种问题,因为curl版本比较新。
本文记录了在Linux环境下安装MIT-HIT心电数据库访问软件的过程,包括解决依赖问题和编译错误的方法,最终实现了软件正常运行。
1464

被折叠的 条评论
为什么被折叠?



