저는 python으로 프로그램을 작성하고 있습니다. 이제는 ctypes를 사용하여 C++ 클래스의 일부 함수를 사용하려고합니다. 기본적으로 파이썬에서 데이터 배열을 가지고 있습니다. 그 배열을 사용하여 이미지 클래스로 변환해야하는 C++의 다른 프로그램이 있습니다. 여기에 C++있는 프로그램입니다. 나는 이미 리눅스에서 makefile을 만들었고 컴파일한다.ctypes를 사용하여 linux에서 C++과 python을 연결하십시오.
파일의 이름은 나는 또한 .so를 만들었습니다 '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
하고 .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++과 파이썬을 연결하는 시도 얻을 메시지이며 그것을 잘 작동합니다. 그것은 다른 클래스에서 객체를 정의하려고 할 때 문제가되는 것 같습니다. 그래서 어느 누구도 문제를 해결하는 방법을 알고 있습니까? 감사합니다.