我用 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
关于python - mysql c 的 ctypes 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26153640/