C++中使用NUMPY数组的“未定义引用”错误

2024-06-01 21:22:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一些C++代码编译成一个DLL,以便首次导入Python。我希望能够从其中一个函数返回一个Numpy数组,示例行如下lNumpyArray = PyArray_SimpleNewFromData( 2, lDimensions, NPY_UINT8, (void*)lImage->GetDataPointer() );

在代码的开头,我包括了Python.harrayobject.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


Tags: 代码numpyinclude错误files数组programinc