初始化 PortAudio:主机错误
Posted
技术标签:
【中文标题】初始化 PortAudio:主机错误【英文标题】:Initializing PortAudio: Host error 【发布时间】:2013-02-25 05:32:47 【问题描述】:我正在尝试在 Debian Wheezy 64 位 GNU/Linux 上创建一个 PortAudio 应用程序。我阅读了有关如何添加库的文档,它编译时没有错误。
现在当我想使用这个脚本初始化 PortAudio 时:
#include <stdio.h>
#include "portaudio.h"
int main()
PaError err = Pa_Initialize();
if(err != paNoError)
fprintf(stderr, "Pa_Initialize error: %s\n", Pa_GetErrorText(err));
return 1;
return 0;
我得到以下输出:Pa_Initialize error: Host error.
当我尝试运行同样基于 PortAudio 的 Audacity 时,我收到以下错误:
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
audacity: symbol lookup error: audacity: undefined symbol: Pa_GetStreamHostApiType
当我尝试调用这个函数时:
const PaHostErrorInfo* hostError;
hostError = Pa_GetLastHostErrorInfo();
我收到以下错误:Undefined reference to 'Pa_GetLastHostErrorInfo'
如何以正确的方式初始化 PortAudio,以及我的主机出了什么问题; PortAudio 需要我对 PulseAudio 做些什么吗?
我已经尝试过这个话题http://ubuntuforums.org/showthread.php?t=1756822的底层解决方案,因为我认为它与库文件的配置有关。但这也不起作用,也不会改变错误。
【问题讨论】:
你经历过Pa_Initialize documentation first 是的,但它没有帮助我解决问题,也没有澄清错误。 读取`符号查找错误:大胆:未定义符号̀,听起来库文件有问题 - 就像使用与 /usr 中的 .so 文件不匹配的 PortAudio 头编译的大胆/lib(也许是不同的版本?)... @Thomas 对不起,我希望我能帮助你,但我不知道我在文档中搜索但对我来说是不可能的......你可以邮寄他们。 @GrijeshChauhan 没问题,如果我自己找不到答案,我会邮寄给他们。 @neodelphi 听起来确实是库问题,但我使用默认的 Debianapt-get install
方法来安装 Audacity,因此不兼容版本中的任何错误都应该以这种方式提出。
【参考方案1】:
大胆错误看起来像是配置错误。要深入了解您的问题,请尝试调用此函数以找出主机错误:
const PaHostErrorInfo* Pa_GetLastHostErrorInfo ( void )
http://portaudio.com/docs/v19-doxydocs/portaudio_8h.html#aad573f208b60577f21d2777a7c5054e0
【讨论】:
当我尝试调用它时:const PaHostErrorInfo* hostError = Pa_GetLastHostErrorInfo();
我收到以下错误:Undefined reference to 'Pa_GetLastHostErrorInfo'
,它确实看起来配置错误。
看起来像一个动态链接问题在这里和大胆。好像找不到 PortAudio 库。
好吧,你会这么认为,但我可以按照我的问题中所述调用该函数。【参考方案2】:
经过一段时间的研究,我放弃了这个问题,并尝试从源代码中重新安装 PortAudio,方法是删除它并重新构建它。谢天谢地,这次成功了!
所以我猜这是在新版本中得到解决的一个错误。
【讨论】:
以上是关于初始化 PortAudio:主机错误的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 PyAudio、PortAudio 的安装问题:“致命错误 C1083:无法打开包含文件:'portaudio.h':没有这样的文件或目录”
原创NuGet 出现“无法初始化 PowerShell 主机,如果将你的 PowerShell 执行策略设置设置为 AllSigned ,请先打开程序包管理控制台以初始化该主机” 错误的解决方法