2013-03-09 4 views
2

Я пытаюсь создать приложение PortAudio на 64-разрядном GNU/Linux Debian Wheezy. Я прочитал документацию о том, как добавить библиотеку, и она компилируется без ошибок.Инициализация 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

вы прошли через [Pa_Initialize документация первый] (http://audacity.sourcearchive.com/documentation/1.3.12-16/pa__front_8c_a0db317604e916e8bd6098e60e6237221.html#a0db317604e916e8bd6098e60e6237221) –

+0

Да я, но это не помогло мне решить проблема, она не уточняет ошибку. – tversteeg

+0

Чтение ошибки поиска символа: смелость: неопределенный символ, похоже, что есть проблема с библиотечными файлами - например, если бы смелость была скомпилирована с заголовками PortAudio, которые не соответствуют .so-файлам в/usr/lib (возможно, другая версия ?) ... – neodelphi

ответ

1

После некоторого времени, исследуя проблему, которую я дал и попытался переустановить PortAudio из источника, удалив его и снова построив. И, к счастью, на этот раз это сработало!

Так что, я думаю, это была ошибка, которая была решена в новой версии.

2

Ошибка audacty выглядит как некорректная. Для того, чтобы добраться до нижней части вопроса, попробуйте вызвать эту функцию, чтобы выяснить, что была ошибка хоста:

Const PaHostErrorInfo * Pa_GetLastHostErrorInfo (аннулируются)

http://portaudio.com/docs/v19-doxydocs/portaudio_8h.html#aad573f208b60577f21d2777a7c5054e0

+0

Когда я пытаюсь называть это: 'const PaHostErrorInfo * hostError = Pa_GetLastHostErrorInfo();' Я получаю следующую ошибку: 'Неопределенная ссылка на 'Pa_GetLastHostErrorInfo'', похоже, что что-то неправильно настроено. – tversteeg

+0

Похож на динамическую проблему связи как здесь, так и с дерзостью. Например, он не может найти библиотеки PortAudio. –

+0

Ну да, вы бы подумали, но я могу назвать функцию, как описано в моем вопросе. – tversteeg

 Смежные вопросы

  • Нет связанных вопросов^_^