我使用的是python3.6 theano, 安装了mingw-w64-x86-64,我的操作系统是Win10_64,安装了cuda, 似乎一切都好吗
theano.test()没关系,说我的gpu正在运行,
但它只是告诉我"错误:' :: hypot'尚未宣布"
C:/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0/include/c++/cmath:1157:11: error: '::hypot' has
not been declared\r. using ::hypot;\r. ^~~~~\r. ",
任何帮助将不胜感激!
答案 0 :(得分:10)
使用mingw32构建python文件时遇到此错误。
我打开了它所说的文件(C:/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0/include/c ++ / cmath:1157:11)
并将该行更改为
using ::_hypot;
或在此之前添加此行:
#define hypot _hypot
之后问题解决了!! 我知道它不是一个基本的解决方案,但它是我能找到的那个!!
答案 1 :(得分:2)
(此答案最初发表在评论中)
我必须保留原始的mingw cmath标头(否则将不会生成libpng),并且在
#define hypot _hypot
中注释了pyconfig.h
(第241行)。
答案 2 :(得分:0)
我从您的不完整信息中猜测,您无法在C ++ 11模式下进行编译,因此您无法从C99中获取::hypot
。
答案 3 :(得分:0)
对我有用的是结合使用上述答案:
#ifdef _WIN64
#define _hypot hypot
#include <cmath>
#endif
#include <pybind11.h>