Я пишу программу в python. теперь я хочу использовать ctypes для использования некоторых функций класса i в C++. так что в принципе у меня есть массив данных в python. У меня есть другая программа в C++, которая должна использовать этот массив и преобразовать его в класс изображения. вот программа, которую я имею в C++. Я уже сделал makefile в Linux, и он компилируется.используя ctypes для связи C++ и python в linux
имя файла «pclink.cpp»
#include <stdio.h>
#include "MImage.h"
#include<stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif
int conv(double* data, int x,int y, int z, int len) {
MImage M;
//M.MLoadFromArray(data,x,y,z,len);
return 0;
}
#ifdef __cplusplus
}
#endif
Я также сделал .so и .o файлы каждая вещь кажется отлично. но когда в питоне я типа
import numpy as np
import ctypes
import os
pclink = np.ctypeslib.load_library('pclink','.')
это сообщение я получаю
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
pclink=np.ctypeslib.load_library('pclink','.')
File "/usr/lib/python2.7/dist-packages/numpy/ctypeslib.py", line 131, in load_library
raise exc
OSError: /home/lucy94/pclink.so: undefined symbol: _ZN6MImage14MLoadFromArrayEPdiiii
ранее я пытался связать C++ и Python с простой программой, которая не имеет каких-либо классов, и это работает отлично. кажется, проблема в том, что я пытаюсь определить объект из другого класса. так что любой знает, как исправить проблему? спасибо