我有一些python代码,我试图使用cython api构造将它们嵌入到c++代码中。出于测试目的,我一直在做以下工作:Example program of Cython as Python to C Converter
使用稍微修改过的代码:
#foo.pyx
cdef public foo(double* x):
x[0] = 0.0
//file.cpp
#include "Python.h"
#include "foo.h"
#include <iostream>
int main(int argc, const char * argv[])
{
double arr[2] = {1,2};
foo(arr);
std::cout << arr[0] << std::endl;
std::cout << arr[1] << std::endl;
} 运行后
cython foo.pyx我尝试编译时收到以下错误消息:
foo.c:(.text+0x387): undefined reference to 'PyUnicodeUCS4_DecodeUTF8'我已经看到了关于这个问题的其他问题,比如An UCS2-UCS4 incompatibility import failure of a Cythnized pure-Python module,当我运行时:
import sys; sys.maxunicode我得到了1114111,和UCS4是一致的。所以我想知道的是,当我的python版本似乎与正确的UCS一致时,我如何解决这个未定义的引用,而不是其他地方。
发布于 2016-08-05 06:08:33
事实证明,我的系统上有两个不同的python安装,而我链接的是错误的一个。
https://stackoverflow.com/questions/38754156
复制相似问题