swig mysql:undefined symbol:mysql_init'

时间:2011-10-19 12:29:22

标签: c++ python mysql swig

我正在尝试为python创建一个提供mysql连接的swig包。但是当我尝试在python中导入包时,我收到以下错误:

-> _mod = imp.load_module('_IMysqlConnection', fp, pathname, description)
(Pdb) s
ImportError: './_IMysqlConnection.so: undefined symbol: mysql_init'

我正在使用以下命令创建包(可能这是我犯错误的地方)

$swig -c++ -python -o IMysqlConnection_wrap.cc IMysqlConnection.i
$ gcc -fPIC -c IMysqlConnection_wrap.cc -o IMysqlConnection_wrap.o -I /usr/include/python2.6/ `mysql_config --cflags` `mysql_config --libs`
g$ gcc -fPIC -c IMysqlConnection.cc -o IMysqlConnection.o -I . /usr/include/python2.6/ `mysql_config --cflags` `mysql_config --libs`
$ g++ -shared IMysqlConnection_wrap.o IMysqlConnection.o -o _IMysqlConnection.so

当我在C ++ main中使用这个类(IMysqlConnection.cc)时,我能够进行mysql连接。

我非常感谢任何帮助和指导。

2 个答案:

答案 0 :(得分:1)

你可以使用 http://sourceforge.net/projects/mysql-python/

但这并不完全符合您的连接。

答案 1 :(得分:0)

解决:我在创建共享库时遇到mysql_config --cflags mysql_config --libs _IMysqlConnection.so

g ++ -shared CMysqlConnection_wrap.o CMysqlConnection.o -o _CMysqlConnection.so mysql_config --cflags mysql_config --libs

上面的命令将mysql库链接到共享库_IMysqlConnection.so,它工作正常。

感谢Ugo的帮助: - )