augustus 3.2 (3.3) 编译失败
原因是依赖boost库,而且需要bamtools,从而导致编译失败
报错1:
$ make
mkdir -p bin
cd src && make
make[1]: Entering directory '/home/bio/augustus/augustus-3.2.3/src'
g++ -c -Wall -Wno-sign-compare -Wno-strict-overflow -ansi -pedantic -O3 -DZIPINPUT -o genbank.o genbank.cc -I../include
In file included from genbank.cc:15:0:
../include/genbank.hh:26:48: fatal error: boost/iostreams/filtering_stream.hpp: No such file or directory
#include <boost/iostreams/filtering_stream.hpp>
^
compilation terminated.
Makefile:71: recipe for target 'genbank.o' failed
make[1]: *** [genbank.o] Error 1
make[1]: Leaving directory '/home/bio/augustus/augustus-3.2.3/src'
Makefile:7: recipe for target 'all' failedmake: *** [all] Error 2
解决方法1:
修改src/Makefile
将 LIBS = -lboost_iostreams 改成 LIBS = -lboost_iostreams -L/Path_to_boost/lib
将 INCLS = -I../include 改成 INCLS = -I../include -I/Path_to_boost/include
解决了boost问题,但是又来了新的报错
报错2:
Makefile:29: recipe for target 'bam2hints.o' failed
make[2]: *** [bam2hints.o] Error 1
解决方法2:
修改 auxprogs/bam2hints/Makefile
将 INCLUDES = /usr/include/bamtools 改成 INCLUDES = /Path_to_bamtools/include
将 LIBS = -lbamtools -lz 改成 LIBS = /Path_to_bamtools/lib/libbamtools.a -lz
解决了bam2hints又来了新报错。。。
报错3:
Makefile:34: recipe for target 'filterBam.o' failed
make[3]: *** [filterBam.o] Error 1
解决方法3:
修改 auxprogs/filterBam/src/Makefile
将 BAMTOOLS = /usr/include/bamtools 改成 BAMTOOLS = /Path_to_bamtools/include
将 LIBS = -lbamtools -lz 改成 LIBS = /Path_to_bamtools/lib/libbamtools.a -lz
Finally succeeded ~~
注意事项:
1. bamtools最好下载2.5.0以下版本的,推荐2.4.1
2. 最后记得要把boost的库放入linux的配置中
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/Path_to_bamtools/include:/Path_to_bamtools/lib