2020-10-21

it2024-12-24  10

当编译ANGSD软件是遇到:SIZE_MAX’ was not declared in this scope报错

在安装ANGSD软件时进行编译make HTSSRC=../htslib这一步时报错SIZE_MAX’ was not declared in this scope导致编译不成功


问题描述:

[c@mu01 angsd-master]$ make HTSSRC=../htslib-develop HTSSRC defined g++ -c  -I/202009/ANgsd/htslib-develop -O3   vcfReader.cpp In file included from /202009/ANgsd/htslib-develop/htslib/hts.h:37:0,                  from argStruct.h:5,                  from shared.h:9,                  from analysisFunction.h:9,                  from vcfReader.cpp:7: /202009/ANgsd/htslib-develop/htslib/kstring.h: In function ‘int ks_resize(kstring_t*, size_t)’            : /202009/ANgsd/htslib-develop/htslib/kstring.h:149:22: error: ‘SIZE_MAX’ was not declared in this scope       size = (size > (SIZE_MAX>>2)) ? size : size + (size >> 1);                       ^ make: *** [vcfReader.o] Error 1  



原因分析:

这个提示是指在/202009/ANgsd/htslib-develop/htslib/kstring.h这个文件中缺少SIZE_MAX 的定义,需要我们在kstring.h这个文件中的#include <stdint.h> 下一行中加入


 

 

#if ! defined SIZE_MAX #define SIZE_MAX (4294967295U) #endif

该解决方法参考了https://blog.csdn.net/chwshuang/article/details/77192146的解决方法 

加入后将htslib-develop包和angsd包重头编译一遍解决.

嘻嘻嘻 开心

最新回复(0)