`M_PI_*` Undeclared Identifier
Summary
Starting with c475228b, I get the following errors during compilation:
eigen-src\Eigen\src/Core/arch/Default/GenericPacketMathFunctions.h(874): error C2065: 'M_PI_2': undeclared identifier
eigen-src\Eigen\src/Core/arch/Default/GenericPacketMathFunctions.h(876): error C2065: 'M_PI_4': undeclared identifier
I am using MSVC as my compiler, and I am using CMake FetchContent to download Eigen. I have confirmed that 1e1848fd does work.
Environment
- Operating System : Windows
- Architecture : x64
- Eigen Version : c475228b
- Compiler Version : MSVC 19.31.31106.2
- Compile Flags : -external:W0 /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd -openmp -std:c++17 /showIncludes /FoMul
- Vector Extension : Not sure.
Minimal Example
test.cpp
#include <Eigen/Core>
CMakeLists.txt
cmake_minimum_required(VERSION 3.22.2)
project(Test)
add_executable(Test test.cpp)
include(FetchContent)
FetchContent_Declare(
Eigen
GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
GIT_TAG c475228b28d1bc81d2247860c6cd907bb316a0d6
OVERRIDE_FIND_PACKAGE)
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
set(EIGEN_BUILD_DOC OFF)
set(EIGEN_BUILD_PKGCONFIG OFF)
FetchContent_MakeAvailable(Eigen)
target_link_libraries(Test PUBLIC Eigen3::Eigen)
Steps to reproduce
- Install c475228b
- Build with MSVC and observe the errors.
What is the current bug behavior?
MSVC can't seem to find the definitions of M_PI_2
and M_PI_4
What is the expected correct behavior?
No error in finding the values.
Relevant logs
C:\Users\xxx\Builds\dev\_build\Testing - MSVC\_deps\eigen-src\Eigen\src/Core/arch/Default/GenericPacketMathFunctions.h(874): error C2065: 'M_PI_2': undeclared identifier
C:\Users\xxx\Builds\dev\_build\Testing - MSVC\_deps\eigen-src\Eigen\src/Core/arch/SSE/MathFunctions.h(86): note: see reference to function template instantiation 'Packet Eigen::internal::patan_double<Eigen::internal::Packet2d>(const Packet &)' being compiled
with
[
Packet=Eigen::internal::Packet2d
]
C:\Users\xxx\Builds\dev\_build\Testing - MSVC\_deps\eigen-src\Eigen\src/Core/arch/Default/GenericPacketMathFunctions.h(874): error C2131: expression did not evaluate to a constantC:\Users\xxx\Builds\dev\_build\Testing - MSVC\_deps\eigen-src\Eigen\src/Core/arch/Default/GenericPacketMathFunctions.h(874): note: a non-constant (sub-)expression was encountered
C:\Users\xxx\Builds\dev\_build\Testing - MSVC\_deps\eigen-src\Eigen\src/Core/arch/Default/GenericPacketMathFunctions.h(876): error C2065: 'M_PI_4': undeclared identifier
C:\Users\xxx\Builds\dev\_build\Testing - MSVC\_deps\eigen-src\Eigen\src/Core/arch/Default/GenericPacketMathFunctions.h(876): error C2131: expression did not evaluate to a constantC:\Users\xxx\Builds\dev\_build\Testing - MSVC\_deps\eigen-src\Eigen\src/Core/arch/Default/GenericPacketMathFunctions.h(876): note: a non-constant (sub-)expression was encountered