这工作确定这样做的:
cl /LD A.cpp B.cpp C.pp 在Windows环境
,设置包括路径提升,cryptopp来源和cryptopp库后。
现在我正在尝试在linux中做同样的事情,创建一个.so文件来通过python2.5上的ctypes导入。 我所做的:
gcc -Wall -Wextra -pedantic A.cpp B.cpp C.cpp /usr/lib/libcryptopp.so -shared -o /test/decoding.so
,并在创建这样的对象确定。如果删除“共享”编译是好的,但在那里停止作为主要(显然;))。当然也有libcryptopp.so。
但是,当我去python并导入“so”文件时,它说该属性没有对象“解密”,“加密”或任何我放在那里。使用dir对象来确认它们不在那里。
外部功能在A.cpp定义为:
int encrypt (params...)
//..
return num;
int decrypt (params...)
//..
return num;
使用也尝试:
extern "C" encrypt (params...)
.....
谁能告诉我什么,我做错了吗?
在此先感谢!
抹布
+0
你是如何“导入”.so库?使用ctypes? –
2009-11-22 03:59:08
+0
您可以在.so库上使用'nm'实用程序来显示它公开的名称。 –
2009-11-22 04:01:38
+0
'from ctypes import cdll mydll = cdll.LoadLibrary('/ test/decoding。所以') mydll' 纳米犯规表明他们要么 –
2009-11-22 04:07:17