起因
對(duì)于自學(xué)生物信息學(xué)的我真是作死的一天奢方,還好我是打不死的小鄭润樱,反正服務(wù)器主機(jī)不能聯(lián)網(wǎng)渣触,做RNA-seq 要用到samtools,我靈機(jī)一動(dòng)壹若,把sam 文件傳到mac電腦嗅钻,然后在mac上安裝samtools,處理文件為bam店展,再傳回主機(jī)進(jìn)行下一步养篓,真是perfect哈,然后事實(shí)并不是你想的那樣的赂蕴。柳弄。。
步驟及問題
1.首先下載samtools 的源碼文件http://www.htslib.org/download/
2.解壓
3.cd 進(jìn)入解壓的文件夾
4.make
以上是標(biāo)準(zhǔn)步驟概说,然而
fatal error: zlib.h & lzma.h : No such file or directory
圖片不是第一次遇到的問題時(shí)的语御,因?yàn)槲乙呀?jīng)找不到第一次的圖片了
然后就是各種百度 谷歌
http://blog.csdn.net/xubo245/article/details/50835347
http://blog.csdn.net/digent1/article/details/9467739
http://seqanswers.com/forums/showthread.php?t=9708
https://stackoverflow.com/questions/22738077/backports-lzma-lzmamodule-c11518-fatal-error-lzma-h-no-such-file-or-direct
其實(shí)遠(yuǎn)遠(yuǎn)不止這些,但是說道底席怪,就是缺啥補(bǔ)啥
我自然是安裝了這些包,但是有一點(diǎn)纤控,mac和linux下不一樣挂捻,mac 下 用brew install xz
有一篇文章里面說的 lzma.h 轉(zhuǎn)到xz里面
OK,順便普及一下什么是頭文件船万,也就是.h
在C語言家族程序中刻撒,頭文件被大量使用。一般而言耿导,每個(gè)C++/C程序通常由頭文件(header files)和定義文件(definition files)組成声怔。頭文件作為一種包含功能函數(shù)、數(shù)據(jù)接口聲明的載體文件舱呻,主要用于保存程序的聲明(declaration)醋火,而定義文件用于保存程序的實(shí)現(xiàn) (implementation)悠汽。 .c就是你寫的程序文件。
其實(shí)我C++一點(diǎn)也不懂芥驳。柿冲。。
然而我安裝完成之后兆旬,還是說缺少假抄,沒找到
我仔細(xì)想了一下,應(yīng)該是已經(jīng)裝好了丽猬,剛好也看到一篇文章里面說 用一下這個(gè)命令:
sudo find /usr -name lzma.h
確實(shí)已經(jīng)安裝在我的目錄里面了:
然后我想了2個(gè)思路去解決
第一個(gè)坑死我的思路:
去修改makefile 這個(gè)文件
然后我根本不懂C語言宿饱,百度了半天,說是在CFLAGS
后面加上include 路徑就可以了
-I/usr/local/Cellar/xz/5.2.3/include/
好吧脚祟,不知道有沒有哪位大神教我一下谬以,為啥我加了這個(gè),而且也試了在命令行加了路徑愚铡,就是說不行蛉签。。
第二個(gè)思路:我直接把那個(gè)文件考到需要的目錄就可以了
這個(gè)方法是可行的沥寥,但是mac電腦有robotless機(jī)制碍舍,根目錄下的那個(gè)文件夾不能考,用root 也不行邑雅,只有在物理開機(jī)的時(shí)候取消這個(gè)機(jī)制片橡,但是我膽子小,沒有去嘗試淮野。
然后我就不詳細(xì)說啦捧书,反正我又找了2個(gè)小時(shí),期間還去構(gòu)建了一個(gè)虛擬機(jī)骤星,嘗試各種方法经瓷,最后我找到了還有一個(gè)路徑
cp -r lzma /usr/local/include
把之前的 lzma 和lzma.h 都復(fù)制到 /usr/local/include 下,就可以make 了
好不容易啊洞难。舆吮。。队贱。
最后總結(jié)一下在一點(diǎn)不知道C語言的情況下如何搜索:
1.編譯的頭文件如何增加路徑
2下載安裝好的 lzma.h 怎么放到程序可讀的文件路徑中
3.make 缺少包 lib .h 如何安裝
4.源碼編譯中如何修改makefile 增加路徑
5.mac 如何安裝 lzma.h