fatal error C1189: #error: “You have to define _USE_MATH_DEFINES in the compiler settings“

对于vs2019错误:
fatal error C1189: #error: “You have to define _USE_MATH_DEFINES in the compiler settings!”

vs2019的错误输出如下:

[1/3] Building CXX object CMakeFiles\variational.dir\MeshDefinition.cpp.obj
  FAILED: CMakeFiles/variational.dir/MeshDefinition.cpp.obj 
  D:\VS2019\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe  /nologo /TP -DIMGUI_IMPL_OPENGL_LOADER_GLAD -DNOMINMAX -ID:\VSA_paper\ANN_related_files\ANN\src -I_deps\libigl-src\include -I_deps\glad-src\include -I_deps\glfw-src\include -I..\..\..\..\imgui -I..\..\..\..\imgui\backends -I_deps\eigen-src -I"D:\Program Files (x86)\OpenMesh 8.1\include" -IH:\VTK\install\include\vtk-9.0 /DWIN32 /D_WINDOWS /GR /EHsc, /O2 /Ob2 /DNDEBUG -MD /MP /bigobj /showIncludes /FoCMakeFiles\variational.dir\MeshDefinition.cpp.obj /FdCMakeFiles\variational.dir\ /FS -c ..\..\..\MeshDefinition.cpp
D:\Program Files (x86)\OpenMesh 8.1\include\OpenMesh\Core\System\compiler.hh(110): fatal error C1189: #error:  "You have to define _USE_MATH_DEFINES in the compiler settings!"

可以看出,出错的地方位于MeshDefinition.cpp文件,并且与OpenMesh有关

解决办法:
添加定义_USE_MATH_DEFINES在我的OpenMesh的include语句的前面解决了问题。

#define _USE_MATH_DEFINES
#include <OpenMesh/Core/Mesh/PolyMesh_ArrayKernelT.hh>

注意!无论是MeshDefinition.cpp还是MeshDefinition.h,只要有OpenMesh的include语句,均要在include语句前面加上#define _USE_MATH_DEFINES

另一种解决办法:
在“项目-属性-C/C+±预处理器-预处理器定义”中添加“_USE_MATH_DEFINES”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值