2016-09-29 91 views
-1

我試圖從C++代碼中包含NumPy對象。 我從今天開始,作爲第一個示例程序,我製作了以下存根代碼。當包含numpy/arryobject.h時出現警告消息

#include <Python.h> 
#include <numpy/arrayobject.h> 
#include <iostream> 

static PyObject* SpamError; 

int main(void) { 
    std::cout << "Hello, world!\n"; 
    return (0); 
} 

我用下面的命令來建立。我的確在Ubuntu 14.04上構建。

g++ -o out test.cc -I/usr/include/python2.7 -lpython2.7 

但是,如果我使用上述生成命令,則會出現以下錯誤消息。

/usr/include/python2.7/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] 
#warning "Using deprecated NumPy API, disable it by " \ 

我不清楚這個意思,我想知道如何避免這個問題。任何人都可以提供一些建議嗎?

+0

該警告是告訴你當前NumPy的版本是舊的,請使用最多的這個最新版本圖書館。 – amanuel2

回答

1

要麼升級到最新的磁帶庫由錯誤的指向或添加的#define如下面的代碼

#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION 

#include <Python.h> 
#include <numpy/arrayobject.h> 
#include <iostream> 

static PyObject* SpamError; 

int main(void) { 
    std::cout << "Hello, world!\n"; 
    return (0); 
} 
1

這是known issue。如果你讀線程在那裏,好像你能1.升級你的numpy版本,2忽略它,直到你做什麼,或3暫且,請在警告消息中提到的#define

#define NPY_NO_DEPRECATED_API 

#include <Python.h> 
#include <numpy/arrayobject.h> 
#include <iostream> 

當然,升級到不發生此警告的版本是最佳選擇(但並非總是可行)。