在c语言编写的动态链接库里面嵌入python

Python/PHP/Perl 开发与设计
回复
qimingos
帖子: 226
注册时间: 2007-06-23 14:26
送出感谢: 0
接收感谢: 0
联系:

在c语言编写的动态链接库里面嵌入python

#1

帖子 qimingos » 2007-12-16 23:23

我发现在c语言编写的动态链接库里面嵌入python会有问题。从网上查到的答案是链接的时候添加参数:--export-dynamic ,可是依然不行。提示说有没有定义的标识符。

我的测试程序见附件,很简单,仅仅是在动态链接库里面执行:
#include <python2.5/Python.h>
void py()
{
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print ''Today is'',ctime(time())\n");
Py_Finalize();
}

编译参数:
gcc -shared -o py.so py.c -Xlinker -export-dynamic -lpython2.5

输出错误如下:
File "<string>", line 2
print ''Today is'',ctime(time())
^
SyntaxError: invalid syntax
Error in sys.excepthook:
Traceback (most recent call last):
File "/var/lib/python-support/python2.5/apport_python_hook.py", line 36, in apport_excepthook
from cStringIO import StringIO
ImportError: /usr/lib/python2.5/lib-dynload/cStringIO.so: undefined symbol: _Py_ZeroStruct

Original exception was:
File "<string>", line 2
print ''Today is'',ctime(time())
^
SyntaxError: invalid syntax
头像
huangjiahua
帖子: 3294
注册时间: 2005-03-30 0:27
送出感谢: 0
接收感谢: 1 次
联系:

#2

帖子 huangjiahua » 2007-12-17 0:04

gcc -pthread -fno-strict-aliasing -O2 -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -L/usr/lib/ -lpython2.5 "$C" -s -o "$MO"
跃过无数的时间断层,只为了在
qimingos
帖子: 226
注册时间: 2007-06-23 14:26
送出感谢: 0
接收感谢: 0
联系:

#3

帖子 qimingos » 2007-12-17 0:16

huangjiahua 写了:gcc -pthread -fno-strict-aliasing -O2 -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -L/usr/lib/ -lpython2.5 "$C" -s -o "$MO"


试过了,问题依旧。
回复

回到 “Python/Php/Perl”