我正在尝试使用GCC 4.7.0(MinGW)构建Boost 1.49.0。我多次收到以下错误消息:
cmath
的第1096行包含
using ::hypot;
cmath
包含math.h
,该文件将hypot
函数声明为extern double __cdecl hypot (double, double); /* in libmoldname.a */
在这两个文件中,上面引用的两行后面都是
hypotl
函数的相同语句(除了类型是long double
而不是double
),并且看起来很高兴。任何想法为什么我会收到此错误?
最佳答案
@Praetorian的答案可以正确识别问题。
另一方面,Python header 在技术上应优先于其他 header 。
另外,有时可接受的解决方案在构建系统中不起作用或不方便,因此我想出了一个替代解决方案。
将以下标志添加到对g++的调用中:
-D_hypot=hypot
这样一来,Python header 中的有害宏将变为无操作,并且编译错误将消失。
关于c++ - 使用GCC 4.7.0构建Boost 1.49.0时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10660524/