cmath:1136:11: error: '::hypot' has not been declared
問題描述
- 出現(xiàn)情景:Win10 + Clion + Python2.7
- 具體描述:我在Win系統(tǒng)下Clion編譯軟件中實(shí)現(xiàn)C++與Python的混編(其實(shí)是C++調(diào)用Python模塊)時(shí),當(dāng)配置好CMakeLists.txt文件中的
include_directories(C:/Python27/include)
和target_link_libraries(Claypot C:/Python27/libs/libpython27.a)
,發(fā)現(xiàn)在引用頭文件```#include "Python.h"時(shí)會(huì)出現(xiàn)錯(cuò)誤傻昙,如下圖所示
注意:當(dāng)然你需要將target_link_libraries中的Claypot換成你的項(xiàng)目名,還有以上的路徑也需要換成你自己的路徑沦疾。
解決辦法
在cpp文件中引用頭文件#include "Python.h"
之前引用#include "math.h"
,如下圖所示
但是我們知道在Python官方文檔中明確提示,要把頭文件#include "Python.h"
放在第一行,如下圖中紅色標(biāo)注的區(qū)域
所以我們最好不要這樣解決,我們可以打開目錄C:/Python27/include中的.h頭文件耳舅,在開頭加上#include "math.h"
頭文件,如下圖所示
#include "Python.h"
就不會(huì)出錯(cuò)了。
總結(jié)
之前在Ubuntu的Clion軟件中實(shí)現(xiàn)C++調(diào)用Python模塊的功能天梧,配置好可以成功實(shí)現(xiàn)盔性。但是在Win的Clion中實(shí)現(xiàn)C++調(diào)用Python模塊的功能便出現(xiàn)了這個(gè)錯(cuò)誤,在網(wǎng)站上查找了很多資料呢岗,最終得以成功解決冕香,現(xiàn)在寫一篇記錄,總結(jié)一下后豫,總之這個(gè)錯(cuò)誤出現(xiàn)的原因我不知道悉尾,但是上述所說的方法的確可以解決這個(gè)錯(cuò)誤。