c++ - swig 和辅助共享库 (c++)

标签 c++ python shared-libraries swig undefined-symbol

我们正在使用 swig 将 python 绑定(bind)添加到 C++ 库。我已经创建了 .i 文件并将 swig 生成的输出编译到库中。

但是,当尝试在 Python 中使用我们的库时,会出现以下错误:

ImportError: /home/satpal/src/alpha/USBDrDaq/examples/libUSBDrDAQ.so: undefined symbol: libusb_clear_halt

如您所见,该库使用 LibUSB。 .i 文件包含 libusb.h,这似乎还不够。

Python 是否也需要 libUSB 的绑定(bind)?

最佳答案

您需要将 libUSB 链接到您正在生成的共享库中。也就是说,构建共享库的命令行应该是这样的:

gcc -shared example.o example_wrap.o -o _example.so -lusb

注意末尾的-lusb

关于c++ - swig 和辅助共享库 (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10781265/

相关文章:

c++ - 将 14 G 数据附加到 EXE 文件的末尾

c++ - 在编译时从可能类型的集合中获取整数?

c++ - 使用 Ncurses (C++) 时不打印宽字符

python - Pandas:重新采样数据帧以匹配不同数据帧的 DatetimeIndex

python - 检测程序名称 Python 3

python - 在应用程序之间共享/管理我们内部 python 库的最佳方式

c++ - 尝试创建共享库时出现 C/C++ 错误。制作库的静态版本时不会出现错误

c++ - virtual 关键字的使用 VS 在 C++ 中简单重定义

python - 将自定义函数插入 pandas 系列

c - 传递给共享对象函数的参数