make: *** [makefile:135: obj/bitvector.o] 错误 1

make: *** [makefile:135: obj/bitvector.o] Error 1

提问人:PallottO 提问时间:11/17/2023 最后编辑:HardcoreHenryPallottO 更新时间:11/17/2023 访问量:16

问:

我正在尝试编译工具 Shapeit5。 运行 make 命令后,该工具会发出以下警告:

g++ -std=c++17 -O3 -mavx2 -mfma -D__COMMIT_ID__="3d97fcd" -D__COMMIT_DATE__="2023-10-02" -c src/containers/bitvector.cpp -o obj/bitvector.o -Isrc -I/opt/tools/htslib/opt/tools/htslib -I/opt/tools/boost_1_73_0/boost/include
In file included from src/containers/bitvector.h:26,from src/containers/bitvector.cpp:23:
src/utils/otools.h:52:10: fatal error: htslib/hts.h: No such file or directory
52 | #include <htslib/hts.h>
|          ^~~~~~~~~~~~~~
compilation terminated.
make: *** [makefile:135: obj/bitvector.o] Error 1

我不明白问题是否与我填写的makefile有关,或者更确切地说与系统问题有关。 有什么建议吗?

非常感谢。

亲切问候。

斯特凡诺

已尝试重新安装软件以及所有依赖项

makefile 编译器错误

评论

0赞 amdixon 11/17/2023
它说它找不到 htslib 代码,这意味着您必须安装 htslib github.com/samtools/htslib

答:

0赞 HardcoreHenry 11/17/2023 #1

这很可能是您的命令行设置不正确。请注意,您有 gcc 命令行选项:

-I/opt/tools/htslib/opt/tools/htslib

这意味着为了工作,文件必须位于 .你应该做#include <htslib/hts.h>hts.h/opt/tools/htslib/opt/tools/htslib/htslib/hts.h

find /opt/tools/htslib/opt/tools/htslib -name hts.h

(假设您使用的是 Linux),看看它在哪里。如果 htslib 目录本身不存在,则需要安装 htslib 或调整命令行参数以指向 htslib 的安装目录。如果它确实存在,但文件不在子目录中,则需要修改 c 文件以指向正确的子目录,或者修改生成文件以包含正确的路径。hts.hhtslib