我正在用一些 C++ 代码扩展 Python。
我正在使用的功能之一具有以下签名:
int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,
char *format, char **kwlist, ...);
(链接:http ://docs.python.org/release/1.5.2p2/ext/parseTupleAndKeywords.html )
感兴趣的参数是 kwlist。在上面的链接中,给出了如何使用此功能的示例。在示例中,kwlist 如下所示:
static char *kwlist[] = {"voltage", "state", "action", "type", NULL};
当我使用 g++ 编译它时,我收到警告:
warning: deprecated conversion from string constant to ‘char*’
因此,我可以将静态 char* 更改为静态 const char*。不幸的是,我无法更改 Python 代码。因此,通过此更改,我得到了不同的编译错误(无法将 char** 转换为 const char**)。根据我在这里阅读的内容,我可以打开编译器标志以忽略警告,或者我可以将 kwlist 定义中的每个常量字符串转换为 char *。目前,我正在做后者。其他解决方案是什么?
对不起,如果这个问题以前被问过。我是新来的。