2

Makefileが次のように読み取るプログラム( vcftools )をインストールしようとしています。

# 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 installzlib-devel

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package zlib-devel

問題が私のコンピューターのどこにzlibがインストールされているのか、インストールのエラーなのか、それとも完全に頭上にあるのかはわかりません。任意の提案をいただければ幸いです。ありがとうございました。

4

6 に答える 6

1

私のシステム (Ubuntu 12.04.3 LTS) では、lib の場所の問題でした。
zlib1g-dev がインストールされていることを確認します。
vcftools_whatever/cpp/Makefile で、変更

LIB = -lz

LIB = -L/usr/local/lib/ -lz
于 2013-12-15T00:48:07.803 に答える
0

これは私にとってはうまくいき、これを私の Makefile に入れました:

ちなみに、この行の最後で lib を中断し、ルート パスだけを持っていたため、10 分間動作しませんでした。

LIBS = -L/tools/hpclib/zlib-1.2.8/lib -lz -lgomp (動作)

LIBS = -L/tools/hpclib/zlib-1.2.8 -lz -lgomp (機能しませんでした)

それが誰かを助けることを願っています。stacks 2.41 というプログラムをコンパイルするためのものでした。

于 2019-10-03T18:52:39.477 に答える