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

05-16 10:55