我用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