python - mysql c 的 ctypes 错误

标签 python c linux

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

相关文章:

linux - Sync IO 在较新的 Linux 内核上慢得令人难以置信

linux - 如何同时获取 linux 命令的退出代码和标准输出

linux - 为什么 docker 容器提示 "Permission denied"?

c - 写入另一个程序的标准输入/从 c 中另一个程序的标准输出读取

c - 将 fgetc 与 stdin 指针结合使用。错误处理输入

Python:检查/dev/disk 设备是否存在

python - 根据 python 中的值分隔列表

c - 按行与按列访问矩阵元素

python - 外语python中的Windows CMD行错误

Linux 中的 Python libgpiod 与 gpiod 软件包?