bedtools软件安装报错:gzopen函数未定义(undefined reference to `gzopen64')

在安装bedtools v2.26.0时遇到gzopen64函数未定义的错误。通过修改Makefile的prefix路径,查找系统中的libz.so文件,使用objdump检查函数存在性,更新LD_LIBRARY_PATH和LDFLAGS,最终成功安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在如下网站下载最新版软件: https://github.com/arq5x/bedtools2/releases/tag/v2.26.0

wget https://github.com/arq5x/bedtools2/releases/download/v2.26.0/bedtools-2.26.0.tar.gz
tar xzf bedtools-2.26.0.tar.gz
cd bedtools2
vim Makefile,将第28行修改为:prefix = /ifs4/BC_COM_P5/F15FTSECKF0984/PEOahnD/PEOahnD/hlb/bin/bedtools-2.26/
make
报错:
- Building main bedtools binary.
obj/gzstream.o: In function `gzstreambuf::open(char const*, int)':
gzstream.C:(.text+0x2a2): undefined reference to `gzopen64'
collect2: ld 返回 1
make: *** [all] 错误 1

搜索系统中库文件:
locate libz.so | less
输出如下:
/lib64/libz.so.1
/lib64/libz.so.1.2.3
/root/zlib-1.2.8/libz.so
/root/zlib-1.2.8/libz.so.1
/root/zlib-1.2.8/libz.so.1.2.8
/usr/lib64/libz.so
/usr/local/lib/libz.so
/usr/local/lib/libz.so.1
/usr/local/lib/libz.so.1.2.8

分别查询上述.so文件中的函数地址,如果都找不到,则需安装最新版本的libz
objdump -T /lib64/libz.so.1 | grep gzopen64
objdump -T /lib64/libz.so.1.2.3 | grep gzopen64
objdump -T /root/zlib-1.2.8/libz.so | grep gzopen64
objdump -T /root/zlib-1.2.8/libz.so.1 | grep gzopen64
objdump -T /root/zlib-1.2.8/libz.so.1.2.8 | grep gzopen64
objdump -T /usr/lib64/libz.so | grep gzopen64
objdump -T /usr/local/lib/libz.so | grep gzopen64
objdump -T /usr/local/lib/libz.so.1.2.8 | grep gzopen64

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LDFLAGS="-L/usr/local/lib"
make
安装成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值