facets包提供的C文件需要额外进行编译,要用到htslib库

因为计算平台账号没有root权限,所以直接利用第一种方法肯定是不可行的。
尝试第二种方式:
$ g++ -std=c++11 -I/public/home/liuxs/anaconda3/envs/biosoft/include/htslib/ snp-pileup.cpp -L/public/home/liuxs/anaconda3/envs/biosoft/lib -lhts -Wl,-rpath=/public/home/liuxs/anaconda3/envs/biosoft/lib -o snp-pileup
In file included from snp-pileup.cpp:1:0:
snp-pileup.h:9:10: fatal error: htslib/bgzf.h: No such file or directory
#include "htslib/bgzf.h"
^~~~~~~~~~~~~~~
compilation terminated.
从报错结果看,肯定是我没有正确指定htslib路径,所以编译器找不到。但我是按照说明书操作的啊?仔细查看conda提供的库文件目录结构,它其实和作者预想用户装在本地的不一样!
既然是conda提供的方式,我们就按照conda的思维就好了。
$ g++ -std=c++11 -I/public/home/liuxs/anaconda3/envs/biosoft/include/ snp-pileup.cpp -L/public/home/liuxs/anaconda3/envs/biosoft/lib -lhts -Wl,-rpath=/public/home/liuxs/anaconda3/envs/biosoft/lib -o snp-pileup
这里只是去除了-I/public/home/liuxs/anaconda3/envs/biosoft/include/
末尾的htslib
,运行编译成功!
网友评论