0
我正在寫一個程序在python中。現在我想用ctypes來使用C++中的類的一些功能。 所以基本上,我有一個Python中的數據數組。我有另一個程序在c + +應該使用該數組並將其轉換爲圖像類。這裏是我在C++中的程序。我已經在linux中編譯makefile並編譯。使用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
我也做了。所以和.o文件的每一件事似乎罰款。但是,當在python我型
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和它工作正常。似乎問題是當我嘗試從另一個類定義一個對象時。所以任何人都知道如何解決這個問題? 謝謝