(Port Audio v19) Kompilieren/Linken?



  • 😕

    Hallo,

    ich habe eine Frage bezüglich der PortAudio API. Ich versuche bereits
    seit mehreren Tagen ein Beispiel zu kompilieren, aber scheitere immer
    wieder am Linker, welcher mir eben fehlende bzw. fehlerhafte Verbindungen
    ausgibt. Leider ist der Vorgang zum Aufsetzen der API sehr schlecht
    dokumentiert bzw. sehr gut im www versteckt worden. Es gelingt mir einfach
    nicht wenigstens ein Beispiel zu kompilieren.

    Ich arbeite mit dem DevC++ IDE.

    Das Beispiel mit dem ich es versucht habe, heißt
    .\test\patest_saw

    Was ich bisher gemacht habe:

    Laut aller lesbaren Infomation musste ich mir aus den folgenden Files
    Objects erstellen und diese Linken:

    pa_common\pa_process.c
    pa_common\pa_skeleton.c
    pa_common\pa_stream.c
    pa_common\pa_trace.c
    pa_common\pa_converters.c
    pa_common\pa_cpuload.c
    pa_common\pa_dither.c
    pa_common\pa_front.c
    pa_common\pa_allocation.h
    pa_win\pa_win_util.c
    pa_win\pa_win_hostapis.c
    pa_win_wmme\pa_win_wmme.c

    Das habe ich getan. Außerdem das übliche -> Includes bekannt machen.
    Anders herum habe ich es bereits auch probiert. Ähnlich der ASIO-
    spezifischen FirstStep Anweisungen (http://portaudio.com/trac/wiki/TutorialDir/Compile/WindowsASIOMSVC)
    habe ich die entsprechenden Files eben in das Projekt importiert.

    Der Datei pa_win_hostapis.c habe ich folgendes ergänzt:

    #define PA_NO_DS
    #define PA_NO_ASIO
    #define PA_NO_WASAPI
    #define PA_NO_WDMKS
    

    Das Problem ist nun, dass in pa_win_wmme.c eben undefinierte
    Aufrufe auftreten, dessen Herkunft ich nirgens erfahren kann.

    D:\studium\Work\paLib\pa_win_hostapis.o(.data+0x4):pa_win_hostapi: undefined reference to `PaWinDs_Initialize'
    D:\studium\Work\paLib\pa_win_hostapis.o(.data+0x8):pa_win_hostapi: undefined reference to `PaAsio_Initialize'
    D:\studium\Work\paLib\pa_win_util.o(.text+0xe4):pa_win_util.c: undefined reference to `timeGetTime@0'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x3e1):pa_win_wmme.c: undefined reference to `waveInOpen@24'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4cb):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x511):pa_win_wmme.c: undefined reference to `waveOutOpen@24'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x5fb):pa_win_wmme.c: undefined reference to `waveOutGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x872):pa_win_wmme.c: undefined reference to `waveInGetDevCapsA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x9fe):pa_win_wmme.c: undefined reference to `waveOutGetDevCapsA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0xcd2):pa_win_wmme.c: undefined reference to `waveInGetNumDevs@0'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0xcec):pa_win_wmme.c: undefined reference to `waveOutGetNumDevs@0'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x21aa):pa_win_wmme.c: undefined reference to `waveInOpen@24'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x21e7):pa_win_wmme.c: undefined reference to `waveOutOpen@24'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x22e1):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x2316):pa_win_wmme.c: undefined reference to `waveOutGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x23d4):pa_win_wmme.c: undefined reference to `waveInClose@4'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x241e):pa_win_wmme.c: undefined reference to `waveOutClose@4'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x2464):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x2499):pa_win_wmme.c: undefined reference to `waveOutGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x271d):pa_win_wmme.c: undefined reference to `waveInPrepareHeader@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x274a):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x279c):pa_win_wmme.c: undefined reference to `waveOutPrepareHeader@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x27c9):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x291b):pa_win_wmme.c: undefined reference to `waveInUnprepareHeader@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x294e):pa_win_wmme.c: undefined reference to `waveOutUnprepareHeader@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x38ca):pa_win_wmme.c: undefined reference to `waveInAddBuffer@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x38f7):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x39da):pa_win_wmme.c: undefined reference to `waveOutWrite@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x3a07):pa_win_wmme.c: undefined reference to `waveOutGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x3f78):pa_win_wmme.c: undefined reference to `waveOutGetPosition@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4814):pa_win_wmme.c: undefined reference to `waveInAddBuffer@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4841):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x48db):pa_win_wmme.c: undefined reference to `waveOutPause@4'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4908):pa_win_wmme.c: undefined reference to `waveOutGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4bd1):pa_win_wmme.c: undefined reference to `waveOutWrite@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4bfe):pa_win_wmme.c: undefined reference to `waveOutGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4e1b):pa_win_wmme.c: undefined reference to `waveInStart@4'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4e48):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4ebb):pa_win_wmme.c: undefined reference to `waveOutRestart@4'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x4ee8):pa_win_wmme.c: undefined reference to `waveOutGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x5282):pa_win_wmme.c: undefined reference to `waveOutReset@4'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x52af):pa_win_wmme.c: undefined reference to `waveOutGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x531b):pa_win_wmme.c: undefined reference to `waveInReset@4'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x5348):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x542e):pa_win_wmme.c: undefined reference to `waveOutReset@4'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x5454):pa_win_wmme.c: undefined reference to `waveOutGetErrorTextA@12'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x54cb):pa_win_wmme.c: undefined reference to `waveInReset@4'
    D:\studium\Work\paLib\pa_win_wmme.o(.text+0x54f1):pa_win_wmme.c: undefined reference to `waveInGetErrorTextA@12'
    

    Ich verzweifle ein wenig, da ich selbst für diesen Schritt schon
    ewig forschen musste. Hat jemand PortAudio auf Dev-C++ lauffähig
    und weiss noch was es alles zu beachten galt?

    Das ganze müsste für WMME laufen. Ein First Step Tutorial gibt
    es dafür auf der PortAudio Site leider nicht.

    Vielen Dank im Voraus für jeden Hinweisschnipsel 🙂

    Gruß Ken.

    PS:
    Die PortAudio API in meiner Version gibt es hier:
    http://www.portaudio.com/archives/pa_stable_v19_061121.tar.gz



  • winmm.lib



  • Es hat geklappt. Danke.


Anmelden zum Antworten