2013-01-08 3 views
1

최근에 PortAudio에 대한 C++ 바인딩이 있다는 것을 알았습니다. 따라서 객체 지향성을 유지하기 위해 일반적인 PortAudio C 함수에서 C++ 바인딩으로 변환하고 있습니다. 그러나 콜백 함수에 문제가 발생했습니다. 나는 다음과 같은 방법으로 스트림을 만들려고 :Portaudio C++ bindings : MemFunCallbackStream에 기호가 없습니다.

stream = new portaudio::MemFunCallbackStream<OutputChannel>(params, *this, &OutputChannel::output); 

이 호출은 OutputChannel - 클래스의 방법으로 이루어진다. 이 같은 클래스에는 콜백 함수가 필요한 메서드가 포함되어 있으므로 'this'는 MemFunCallbackStream 메서드로 전달됩니다.

Undefined symbols for architecture x86_64: 
    "_Pa_OpenStream", referenced from: 
     portaudio::MemFunCallbackStream<OutputChannel>::open(portaudio::StreamParameters const&)in outputchannel.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

다른 (진단) 방법 일을하기 때문에 내가의 PortAudio 라이브러리가로드 확신 : 구축 할 때 그러나 링커 오류가 있습니다. 이 오류의 원인은 무엇입니까?

+0

진단 방법이 헤더에 구현되지 않았습니까? –

+0

예, 헤더에 구현 된 것이 없습니다. – Mathijs

답변

0

아아, 나는 어리 석다. 어쨌든, 도서관은 이 아니었고 전에도 내 응용 프로그램에 연결된이 아니 었습니다. 그래서 오류는 결국 누락 된 라이브러리 때문이었습니다. 문제 해결됨.

관련 문제