cmath:1136:11: error: '::hypot' has not been declared
问题描述
- 出现情景:Win10 + Clion + Python2.7
- 具体描述:我在Win系统下Clion编译软件中实现C++与Python的混编(其实是C++调用Python模块)时,当配置好CMakeLists.txt文件中的
include_directories(C:/Python27/include)
和target_link_libraries(Claypot C:/Python27/libs/libpython27.a)
,发现在引用头文件```#include "Python.h"时会出现错误,如下图所示
注意:当然你需要将target_link_libraries中的Claypot换成你的项目名,还有以上的路径也需要换成你自己的路径。
解决办法
在cpp文件中引用头文件#include "Python.h"
之前引用#include "math.h"
,如下图所示
但是我们知道在Python官方文档中明确提示,要把头文件#include "Python.h"
放在第一行,如下图中红色标注的区域
所以我们最好不要这样解决,我们可以打开目录C:/Python27/include中的.h头文件,在开头加上#include "math.h"
头文件,如下图所示
#include "Python.h"
就不会出错了。
总结
之前在Ubuntu的Clion软件中实现C++调用Python模块的功能,配置好可以成功实现。但是在Win的Clion中实现C++调用Python模块的功能便出现了这个错误,在网站上查找了很多资料,最终得以成功解决,现在写一篇记录,总结一下,总之这个错误出现的原因我不知道,但是上述所说的方法的确可以解决这个错误。