You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译Shapeit5工具出现htslib头文件缺失错误求助

解决Shapeit5编译时缺失htslib头文件的问题

编译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

问题原因

从编译命令可见,htslib的头文件路径被错误重复设置为/opt/tools/htslib/opt/tools/htslib,导致编译器无法定位htslib/hts.h。

解决步骤

  • 打开项目根目录的Makefile,找到定义HTSLIB_PATH的行,将其修改为实际的htslib安装路径,例如:
    HTSLIB_PATH = /opt/tools/htslib
    
    确认该路径下存在include/htslib/hts.h文件。
  • 若不想修改Makefile,可直接在执行make时手动指定正确路径:
    make HTSLIB_PATH=/opt/tools/htslib
    
  • 若路径正确但仍找不到文件,重新编译安装htslib到指定路径,确保安装过程生成了include目录下的头文件。
  • 若使用系统包管理器安装的htslib(如libhtslib-dev),将HTSLIB_PATH设置为/usr即可,系统会自动查找标准头文件目录。

内容的提问来源于stack exchange,提问作者PallottO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:45:01