我正在尝试在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.
当我尝试运行Audacity时,它也基于PortAudio,我收到以下错误:
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的底层解决方案,因为我认为它与库文件的配置有关。但这也没有用,也没有改变错误。
答案 0 :(得分:2)
audacty错误看起来有些错误配置。要了解问题的根源,请尝试调用此函数以找出主机错误:
const PaHostErrorInfo * Pa_GetLastHostErrorInfo(void)
http://portaudio.com/docs/v19-doxydocs/portaudio_8h.html#aad573f208b60577f21d2777a7c5054e0
答案 1 :(得分:1)
经过一段时间研究我放弃的问题,并尝试通过删除它并重新构建它来从源重新安装PortAudio。谢天谢地,这次它奏效了!
所以我猜这是一个在新版本中得到解决的错误。