我试图将一些C++代码编译成一个DLL,以便首次导入Python。我希望能够从其中一个函数返回一个Numpy数组,示例行如下lNumpyArray = PyArray_SimpleNewFromData( 2, lDimensions, NPY_UINT8, (void*)lImage->GetDataPointer() );
在代码的开头,我包括了Python.h
和arrayobject.h
使用GCC(在Windows上工作),我已经能够将代码编译成一个.O文件,没有错误。然而,当尝试转到dll时,我会遇到很多错误,比如undefined reference to '__imp__Py_Dealloc'
。从我有限的理解来看,这可能是因为我在链接器的某个地方缺少一个库。在C中使用Numpy数组是否还需要包含其他库,或者我应该去别处看看吗?下面是我一直使用的gcc命令
gcc -Wall -shared Pipeline.cpp -I"C:/Python38/include" -I"C:/Program Files/Pleora Technologies Inc/eBUS SDK/Includes" -I "C:/Python38/Lib/site-packages/numpy/core/include" -L"C:/Python38/libs" -L"C:/Program Files/Pleora Technologies Inc/eBUS SDK/Libraries" -o lib.dll -lPvBuffer64 -lPvDevice64 -lPvStream64 -lPvAppUtils64 -lPvSystem64 -lSimpleImagingLib64 -lPvGenICam64 -lPvSerial64 -lPvBase64 -lPtUtilsLib64
我将避免使用C-Python接口来numpy,而是使用库链接xtensor(found here)
相关问题 更多 >
编程相关推荐