2016-09-29 92 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> 

当然,升级到不发生此警告的版本是最佳选择(但并非总是可行)。