我正在尝试安装一个程序(vcftools),其 Makefile 内容如下:
# Make file for vcftools
# Author: Adam Auton
# ($Revision: 230 $)
# Compiler
CPP = g++
# Output executable
EXECUTABLE = vcftools
# Flag used to turn on compilation of PCA routines
ifndef VCFTOOLS_PCA
VCFTOOLS_PCA = 0
endif
# Compiler flags
CPPFLAGS = -O2 -Wall -Wextra -D_FILE_OFFSET_BITS=64
#CPPFLAGS = -g
# Included libraries (zlib)
#LIB = -lz
LIB = -lz -I/usr/local/include/ -L/usr/local/lib/
OBJS = vcftools.o vcf_file.o vcf_entry.o \
vcf_entry_getters.o vcf_entry_setters.o \
vcf_file_filters.o vcf_file_output.o \
vcf_file_format_convert.o \
vcf_file_diff.o parameters.o \
vcf_file_index.o \
output_log.o
我无法让这个 Makefile 正确运行,而是得到一个错误,内容如下:
vcf_file.cpp:(.text+0xe72): undefined reference to `gzbuffer'
collect2: ld returned 1 exit status
make[1]: *** [vcftools] Error 1
make[1]: Leaving directory `/home/Public/Packages/vcftools_0.1.10/cpp'
/bin/sh: 2: cd: can't cd to perl
make: *** [install] Error 2
我认为部分问题是与我的 zlib 安装路径相关的错误。我尝试更改 -I 和 -L 路径以匹配我的 zlib 安装,但没有任何运气(有很多文件夹似乎包含 zlib 文件)。
此外,通过搜索与该程序相关的其他论坛(此处),似乎我可能需要 zlib1g-dev。zlib1g-dev 在我的电脑上(它显示在我的 ubuntu 软件中心),但是当我进入时没有显示:
root@root:/home/Public/Packages/vcftools_0.1.10/cpp# whereis zlib1g-dev
zlib1g-dev:
root@root:/home/Public/Packages/vcftools_0.1.10/cpp# which zlib1g-dev
我考虑过删除并重新安装 zlib,但看起来有几个程序依赖于它。尝试运行安装或删除时,我收到以下消息:
sudo apt-get install zlib-devel
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package zlib-devel
我不确定问题是否出在我的计算机上安装 zlib 的位置、安装中的错误,或者其他完全在我脑海中的问题。任何建议将不胜感激。谢谢你。