导入模块时出错,dlopen(): 找不到符号

1 投票
1 回答
3881 浏览
提问于 2025-04-16 06:41

我写了一个用C语言做的Python扩展(实际上是用Cython,但这不是重点),这个扩展使用了Mac OSX中的AudioUnit框架。这个模块构建得很正确,但当我尝试在Python命令行中导入它时,出现了以下错误:

ImportError: dlopen(myproject/audiomodule.so, 2): Symbol not found: _AudioUnitSetProperty
  Referenced from: /Views/python/lib/python3.1/site-packages/myproject/audiomodule.so
  Expected in: dynamic lookup

我该怎么告诉Python在加载这个模块时需要使用AudioUnit框架呢?

1 个回答

2

唉,正如在这个回答中提到的类似问题,关键是要把-frameworkAudioUnit这两个参数作为两个单独的元组项传递。此外,我的系统检测不正确,所以这些标志在构建时没有被正确应用。

撰写回答