1
-Wall -Werror
으로 코드를 컴파일 할 때 GCC 5.4를 사용하면 정상적으로 작동합니다. 내가 GCC 7.2 (네이티브 컴파일러와 같은 소스에서 내장)와 그것을 시도 할 때,이 있습니다 :GCC 5.4에서 GCC 7.2로 업그레이드 한 후 Eigen 3.3.4와의 경고
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
을 사용하려고합니다. 아무도 이것에 약간의 빛을 던질 수 있습니까?
Eigen에서 경고가 발생 했습니까? 아닙니다. 당신은 bugzilla에게 문제를보고해야합니다 ... 해결 방법 :'#pragma GCC diagnostic ignored'을 사용하십시오 – yumetodo
이것은 3.3에서 오래 전에 고쳐졌고 – ggael
지점을 devel했습니다. 그러나 방금 다운로드 페이지에서 새로운 사본을 어제 다운로드했습니다. –