导入pyo时未定义的符号

Posted

技术标签:

【中文标题】导入pyo时未定义的符号【英文标题】:undefined symbol when importing pyo 【发布时间】:2014-08-29 22:05:55 【问题描述】:

我在 Ubuntu 14.04 中运行 python 2.7 并安装了 python-pyo 包,但是当我导入 pyo 模块时出现以下错误:

ImportError: /usr/lib/python2.7/dist-packages/_pyo.so: undefined symbol: jack_port_register

看来我一定是搞砸了我系统上的 jack 库,但我不知道是什么坏了。

[~/Downloads/pyo-read-only]$ ldconfig -p|grep jack
    libjack.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libjack.so.0
    libjack.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libjack.so
[~/Downloads/pyo-read-only]$ objdump -tT /usr/lib/x86_64-linux-gnu/libjack.so.0|grep jack_port_register
000000000000a3a0 g    DF .text  00000000000001a1  Base        jack_port_register

我尝试从头开始构建 python-pyo,但我得到了同样的错误。如果我在没有 --use-jack 的情况下构建它,当我尝试启动服务器时会出现分段错误。

【问题讨论】:

【参考方案1】:

我遇到了这个问题。通过确保我安装了正确的软件包来修复它。 来自http://ajaxsoundstudio.com/pyodoc/compiling.html

sudo apt-get install libjack-jackd2-dev libportmidi-dev portaudio19-dev liblo-dev
sudo apt-get install libsndfile-dev python-dev python-tk
sudo apt-get install python-imaging-tk python-wxgtk3.0

【讨论】:

【参考方案2】:

我可以通过手动将 -ljack 添加到 setup.py 并从源代码构建来进一步了解。

【讨论】:

以上是关于导入pyo时未定义的符号的主要内容,如果未能解决你的问题,请参考以下文章

为 C 库生成 Python SWIG 绑定时未定义的符号

尝试使用 dlopen 加载库时未定义的符号

尝试使用 Cython 扩展时未定义的符号

WebAssembly 编译器错误:使用外部库编译时未定义符号

在 C++ 中使用 boost:regex_error 时未定义符号?

为 f2py 使用 C++ 源时未定义的符号