包含numpy / arryobject.h时的警告消息

时间:2016-09-29 03:21:39

标签: c++ numpy

我试图从C ++代码中包含NumPy对象。 我是从今天开始的,作为第一个示例程序,我制作了以下存根代码。

#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 " \

我不清楚这个含义,我想知道如何避免这个问题。有人可以就此提出一些建议吗?

2 个答案:

答案 0 :(得分:1)

这是known issue。如果您在那里阅读了该主题,您似乎可以1.升级您的numpy版本,2。在您这样做之前忽略它,或者3.暂时使用警告中提到的#define消息:

#define NPY_NO_DEPRECATED_API 

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

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

答案 1 :(得分: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);
}