1、源码下载网址
wget http://www.ebi.ac.uk/~birney/wise2/wise2.4.1.tar.gz
2、解压源码安装包
tar -xvf wise2.4.1.tar.gz wise2.4.1/
3、安装
make all
出现错误1
原因:源码的函数类型需要更新
出现错误2:
4、修改源码
替换make的源码
修改HMMer/sqio.c文件的函数
修改models/phasemodel.c函数
5.编译
安装完成如下所示:
6.测试
出现错误:

修改方案如下:
在源码的src目录下面找到并修改dynlibsrc/sequence.c 和dnaindex/largeseqreader.c两个文件,在若干行末尾添加 || feof(ifp) )
修改前文件:
修改后文件:
重新编译:
重新测试:
测试结果正常Tests passed 则表示测试通过。
1、源码下载网址
wget http://www.ebi.ac.uk/~birney/wise2/wise2.4.1.tar.gz
2、解压源码安装包
tar -xvf wise2.4.1.tar.gz wise2.4.1/
3、安装
make all
出现错误1
sqio.c:232:1: error: conflicting types for ‘getline’ 232 | getline(struct ReadSeqVars *V) | ^~~~~~~ In file included from sqio.c:27: /usr/include/stdio.h:639:18: note: previous declaration of ‘getline’ was here 639 | extern __ssize_t getline (char **__restrict __lineptr, | ^~~~~~~ make[1]: *** [Makefile:69: sqio.o] Error 1 make[1]: Leaving directory '/path/to/wise2.4.1/src/HMMer2' make: *** [makefile:88: realall] Error 2原因:源码的函数类型需要更新
出现错误2:
4、修改源码
替换make的源码
修改HMMer/sqio.c文件的函数
修改models/phasemodel.c函数
5.编译
安装完成如下所示:
6.测试
出现错误:
修改方案如下:
在源码的src目录下面找到并修改dynlibsrc/sequence.c 和dnaindex/largeseqreader.c两个文件,在若干行末尾添加 || feof(ifp) )
修改前文件:
[root@node-1 src]# grep -rn пС == ЕОЕ" dynlibsrc/sequence.dy:787: if( c == EOF ) { dynlibsrc/sequence.dy:852: if( c == EOF || c == '>' |lc=='/'){ dynlibsrc/sequence.dy:935: if( c == EOF || feof(ifp) ) dynlibsrc/sequence.dy:945: if( c == EOF) dynlibsrc/sequence.c: 788: if( c == EOF ) { dynlibsrc/sequence.c:853: if( c == EOF || c == '>' || c =='/'){ dynlibsrc/sequence .c:941:- if( c == EOF || feof(ifp) ) dynlibsrc/sequence.c:951: if( c == EOF) dnaindex/largeseqreader .c:38: if( c == EOF ) { dnaindex/largeseq reader.dy:44: if( c == EOF){ dyc/lex.yy.c:483: if ( c == EOF && ferror( yyin ) ) \ [root@node-1 src]#修改后文件:
[root@node-1 src]# grep -rn "c == EOF" dynlibsrc/sequence.dy: 787: if( c == EOF ) { dynlibsrc/sequence.dy:852: if( c == EOF || c == '>' Ilc=='/'){ dynlibsrc/sequence. dy 935: if( c == EOF || feof(ifp) ) dynlibsrc/sequence.dy:945: if( c == EOF) dynlibsrc/sequence.c: 788: if( c == EOF || feof(ifp) ) { dynlibsrc/sequence.c:853: if( c == EOF İİ feof(ifp)|| c == '>' || c=='/'){ dynlibsrc/sequence.c:941: if( c == EOF || feof(ifp) dynlibsrc/sequence.c:951: if( c == EOF || feof(ifp) ) dnaindex/largeseqreader .C:38: if( c == EOF || feof(ifp) ) { dnaindex/largeseqreader.dy:44: if( c == EOF ) { dyc/lex.yy.c:483: if ( c == EOF && ferror( yyin ) ) \重新编译:
重新测试:
测试结果正常Tests passed 则表示测试通过。