在我最后一个关于python&c++集成的问题之后,我被告知在windows上使用dll。
(Previous question)
这样做很好:
cl /LD A.cpp B.cpp C.pp
在windows环境中,设置boost、cryptopp源和cryptopp库的include路径后。在
现在我正在尝试在linux中做同样的事情,创建一个.so文件,通过python2.5上的ctypes导入。
我做到了:
gcc -Wall -Wextra -pedantic A.cpp B.cpp C.cpp /usr/lib/libcryptopp.so -shared -o /test/decoding.so
so对象被创建好了。如果删除“-shared”编译是可以的,但由于没有main而停止(显然;)。当然libcryptopp.so也存在。在
但是当我转到python并导入“so”文件时,它说该属性没有对象“decrypt”、“encrypt”或我放在那里的任何对象。在dll对象上使用“dir”可以确认它们不在那里。在
外部函数在A.cpp中定义为:int encrypt (params...)
//..
return num;
int decrypt (params...)
//..
return num;
还尝试使用:
^{pr2}$
谁能告诉我我做错了什么吗?在
提前谢谢!在
破布