现象:
按照鲲鹏社区文档https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/prtg-osc/kunpengsoapdenovo_02_0006.html安装SOAPdenovo,出现/usr/bin/ld: skipping incompatible ./standardPregraph/inc/libbam.a when searching for -lbam

问题分析过程:
根据报错信息提示, cannot find -lbam,但bam.a是在sparsePregraph或者standardPregraph是有的,往前提示是跳过了这个.a,那为什么会跳过这个.a文件?
使用命令readelf -h ./sparsePregraph/inc/libbam.a发现该静态库是源于X86的,非aarch64架构,此时需要替换成arm架构的静态库,该静态库来源于samtools。

解决方案:
①在centos上在可使用yum install samtools安装
②在kylin上可以采用源码方式安装samtools:
cd /path/to/samtools
wget https://codeload.github.com/samtools/samtools/tar.gz/0.1.19 -O samtools-0.1.19.tar.gz
tar xf samtools-0.1.19.tar.gz
cd samtools-0.1.19
make
此时已安装完成samtools,在当前目录下会生成libbam.a
使用命令readelf -h ./libbam.a可以看到,当前的架构已经是aarch64

进入到SOAPdenovo的源码目录,将libbam.a链接到makefile中,在第13行后面加上 -L/path/to/samtools/samtools-0.1.19

再次重新make,即可安装成功,生成二进制!

现象:
按照鲲鹏社区文档https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/prtg-osc/kunpengsoapdenovo_02_0006.html安装SOAPdenovo,出现/usr/bin/ld: skipping incompatible ./standardPregraph/inc/libbam.a when searching for -lbam
问题分析过程:
根据报错信息提示, cannot find -lbam,但bam.a是在sparsePregraph或者standardPregraph是有的,往前提示是跳过了这个.a,那为什么会跳过这个.a文件?
使用命令readelf -h ./sparsePregraph/inc/libbam.a发现该静态库是源于X86的,非aarch64架构,此时需要替换成arm架构的静态库,该静态库来源于samtools。
解决方案:
①在centos上在可使用yum install samtools安装
②在kylin上可以采用源码方式安装samtools:
cd /path/to/samtools
wget https://codeload.github.com/samtools/samtools/tar.gz/0.1.19 -O samtools-0.1.19.tar.gz
tar xf samtools-0.1.19.tar.gz
cd samtools-0.1.19
make
此时已安装完成samtools,在当前目录下会生成libbam.a
使用命令readelf -h ./libbam.a可以看到,当前的架构已经是aarch64
进入到SOAPdenovo的源码目录,将libbam.a链接到makefile中,在第13行后面加上 -L/path/to/samtools/samtools-0.1.19
再次重新make,即可安装成功,生成二进制!