我用c创建了一个库,但是当我在python中调用该库时,显示了以下错误:

Traceback (most recent call last):
  File "probrar_lib.py", line 6, in <module>
    lib = cdll.LoadLibrary('/home/msorjas/Documentos/pruebas_c/lib1.so')
  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /home/msorjas/Documentos/pruebas_c/lib1.so: undefined symbol: mysql_query


c库,使用以下代码编译:

gcc -c -fPIC lib1.c
gcc -shared lib1.o -o lib1.so


因为它应该编译?

我使用linux。

解决了:

gcc -c -fPIC lib1.c
gcc -shared lib1.o -o lib1.so $(mysql_config --libs) $(mysql_config --cflags)

最佳答案

您忘记了告诉它针对MySQL进行构建。

gcc -shared -lmysqlclient lib1.o -o lib1.so

09-26 22:09