augustus 3.2 (3.3) 編譯失敗linux
緣由是依賴boost庫,並且須要bamtools,從而致使編譯失敗ios
報錯1:ip
$ makeci
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 2get
解決方法1:io
修改src/Makefile編譯
將 LIBS = -lboost_iostreams 改爲 LIBS = -lboost_iostreams -L/Path_to_boost/libstream
將 INCLS = -I../include 改爲 INCLS = -I../include -I/Path_to_boost/include配置
解決了boost問題,可是又來了新的報錯file
報錯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