在从GCC 5.4升级为GCC 7.2后,用Eigen 3.3.4警告
Warnings with Eigen 3.3.4 after upgrading from GCC 5.4 to GCC 7.2
当我使用GCC 5.4与-Wall -Werror
编译代码时,它可以正常工作。当我使用GCC 7.2(由源作为本机编译器构建)尝试时,它给出了:
error: enum constant in boolean context [-Werror=int-in-bool-context]
MayLinearVectorize = bool(MightVectorize) && MayLinearize && DstHasDirectAccess
一个重现问题的小例子:
#include <Eigen/Dense>
using namespace Eigen;
int main()
{
Matrix<double,Dynamic,1> v = Matrix<double,Dynamic,1>::Constant(5, 1);
return 0;
}
用g++7 eigtrivial.cpp -I$EIGEN_DIR -Wall -Werror
。
如果我没有-Werror
尝试,我会收到警告,但它会编译,并且我所有的(几个)测试都通过 - 据我所知,它很好。但是,我想保留所有警告并启用-Werror
。任何人都可以亮着吗?
正如Ggael所说,这已经固定了,但还没有官方的TARBALL。从Mercurial存储库克隆(截至目前版本3.3.90),并在我的代码中使用该问题解决了问题。
相关文章:
- Eigen如何在容器循环中干净地附加矩阵
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 当在带有Eigen的C++中使用GDB时,我如何才能看到更多的大矩阵
- 奇怪的结构&GCC&clang(void*返回类型)
- GCC本机矩阵运算库
- PowerPC ppc64le上的Gcc Woverloaded虚拟错误
- gcc和c++17的过载解析失败
- 数据成员SFINAE的C++17测试:gcc vs clang
- GCC对可能有效的代码抛出init list生存期警告
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 使用gcc从静态链接的文件中查找可选符号
- 普通环路未使用gcc 4.8.5自动矢量化
- 有了gcc,是否可以链接库,但前提是它存在
- 在clang++预处理器中确定gcc工具链版本
- 为什么 gcc 编译这个而 msvc 没有
- 使用Pybind11向Python公开Eigen::张量
- 在从GCC 5.4升级为GCC 7.2后,用Eigen 3.3.4警告
- 无法将“英特尔MKL 11.3”库与Eigen 3.2.9 TDM-GCC-5.1.0 Win64链接