如何解决隐式常量转换中的溢出[-Werror =溢出]
我正在使用模块处理依赖关系的服务器上远程工作。我正在尝试安装dssp(https://github.com/cmbi/dssp)。在github上可以看到依赖关系。
我加载的模块是:
Currently Loaded Modules:
1) slurm/18-08-4-1-hits 4) numactl/.2.0.10-GCC-4.8.4 (H) 7) OpenBLAS/0.2.13-GCC-4.8.4-
LAPACK-3.5.0 10) ScaLAPACK/2.0.2-gompi-1.7.20-OpenBLAS-0.2.13-LAPACK-3.5.0 13)
zlib/.1.2.8-goolf-1.7.20 (H)
2) sge/dummy 5) hwloc/.1.10.1-GCC-4.8.4 (H) 8) gompi/1.7.20
11) goolf/1.7.20 14) Boost/1.58.0-goolf-
1.7.20
3) GCC/4.8.4 6) OpenMPI/1.8.4-GCC-4.8.4 9) FFTW/3.3.4-gompi-1.7.20
12) bzip2/.1.0.6-goolf-1.7.20 (H)
要安装,我从tar和tun ./autogen,./configure中提取dssp,然后进行制作。在我看来,前两步没有出现任何错误,但是在运行时我得到了:
In file included from src/mkdssp.cpp:26:0:
/hits/sw/shared/apps/Boost/1.58.0-goolf-1.7.20/include/boost/iostreams/filter/gzip.hpp: In
instantiation of
‘boost::iostreams::basic_gzip_compressor<Alloc>::basic_gzip_compressor(const
boost::iostreams::gzip_params&,int) [with Alloc = std::allocator<char>]’:
src/mkdssp.cpp:173:38: required from here
/hits/sw/shared/apps/Boost/1.58.0-goolf-
1.7.20/include/boost/iostreams/filter/gzip.hpp:674:13: error: overflow in implicit constant
conversion [-Werror=overflow]
header_ += gzip::magic::id2; // ID2.
^
cc1plus: all warnings being treated as errors
我想错误是
error: overflow in implicit constant conversion [-Werror=overflow]
header_ += gzip::magic::id2; // ID2.
在我看来,这似乎不是在我编写的boost库中。我无法理解该错误的含义,而且我不是C ++程序员。
任何帮助将不胜感激。
解决方法
我想错误是
loadDataIntoDatabase
您猜对了。那是错误,或者更确切地说是被警告视为错误的警告。
在我看来,这是在boost库中
是的,这就是“错误”所在的地方。
我无法理解错误的含义
error: overflow in implicit constant conversion [-Werror=overflow]
header_ += gzip::magic::id2; // ID2.
的类型为header_
,其复合赋值运算符接受std::string
作为右手操作数。但是,char
被传递了。因此,存在从int
到int
的隐式转换。在目标系统上,并非char
的所有值都可以用int
类型表示,因此此转换可以更改该值。
要求编译器警告可能会更改该值的隐式转换,并将此类警告视为错误。因此,Boost标头中存在这种转换会导致编译失败。
任何帮助将不胜感激。
如何进行编译;这些中的任何一个都应该起作用:
- 使用更高版本的Boost。此警告已在大约3年前发布的1.65版本中修复。
- 请勿要求编译器将警告视为错误。
- 请勿要求编译器对隐式转换发出警告。
- 要求编译器不从boost头发出诊断。通常,可以通过将包含boost标题的目录指定为“系统”包含目录来实现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。