【发布时间】: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的底层解决方案,因为我认为它与库文件的配置有关。但这也不起作用,也不会改变错误。
【问题讨论】:
-
是的,但它没有帮助我解决问题,也没有澄清错误。
-
读取`符号查找错误:大胆:未定义符号̀,听起来库文件有问题 - 就像使用与 /usr 中的 .so 文件不匹配的 PortAudio 头编译的大胆/lib(也许是不同的版本?)...
-
@Thomas 对不起,我希望我能帮助你,但我不知道我在文档中搜索但对我来说是不可能的......你可以邮寄他们。
-
@GrijeshChauhan 没问题,如果我自己找不到答案,我会邮寄给他们。 @neodelphi 听起来确实是库问题,但我使用默认的 Debian
apt-get install方法来安装 Audacity,因此不兼容版本中的任何错误都应该以这种方式提出。
标签: c audio alsa portaudio audacity