我正在尝试在 Mac OS 10.10 上使用 portaudio,但是在尝试编译示例程序时出现错误。这是我所做的:
-./configure && make。没问题。
- 将示例文件“pa_devs.c”、libportaudio.a 和 portaudio.h 复制到名为 Test1 的单独目录中
- 试图编译它
gcc -o Test1 pa_devs.c libportaudio.a -lm
- 得到这个错误:
Undefined symbols for architecture x86_64:
"_AudioConvertHostTimeToNanos", referenced from:
_GetStreamTime in libportaudio.a(pa_mac_core.o)
_AudioIOProc in libportaudio.a(pa_mac_core.o)
"_AudioConverterDispose", referenced from:
_CloseStream in libportaudio.a(pa_mac_core.o)
"_AudioConverterFillBuffer", referenced from:
_AudioIOProc in libportaudio.a(pa_mac_core.o)
"_AudioConverterNew", referenced from:
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
"_AudioConverterReset", referenced from:
_StartStream in libportaudio.a(pa_mac_core.o)
"_AudioConverterSetProperty", referenced from:
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
"_AudioDeviceAddPropertyListener", referenced from:
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
_SetupDevicePropertyListeners in libportaudio.a(pa_mac_core.o)
_AudioDeviceSetPropertyNowAndWaitForChange in libportaudio.a(pa_mac_core_utilities.o)
"_AudioDeviceGetProperty", referenced from:
_PaMacCore_GetChannelName in libportaudio.a(pa_mac_core.o)
_PaMacCore_GetBufferSizeRange in libportaudio.a(pa_mac_core.o)
_PaMacCore_Initialize in libportaudio.a(pa_mac_core.o)
_OpenStream in libportaudio.a(pa_mac_core.o)
_AudioDevicePropertyActualSampleRateListenerProc in libportaudio.a(pa_mac_core.o)
_AudioDevicePropertyGenericListenerProc in libportaudio.a(pa_mac_core.o)
_CalculateFixedDeviceLatency in libportaudio.a(pa_mac_core.o)
...
"_AudioDeviceGetPropertyInfo", referenced from:
_PaMacCore_GetChannelName in libportaudio.a(pa_mac_core.o)
_PaMacCore_Initialize in libportaudio.a(pa_mac_core.o)
_GetChannelInfo in libportaudio.a(pa_mac_core.o)
_setBestSampleRateForDevice in libportaudio.a(pa_mac_core_utilities.o)
"_AudioDeviceRemovePropertyListener", referenced from:
_CloseStream in libportaudio.a(pa_mac_core.o)
_AudioDeviceSetPropertyNowAndWaitForChange in libportaudio.a(pa_mac_core_utilities.o)
"_AudioDeviceSetProperty", referenced from:
_AudioDeviceSetPropertyNowAndWaitForChange in libportaudio.a(pa_mac_core_utilities.o)
_setBestFramesPerBuffer in libportaudio.a(pa_mac_core_utilities.o)
(maybe you meant: _AudioDeviceSetPropertyNowAndWaitForChange)
"_AudioGetCurrentHostTime", referenced from:
_GetStreamTime in libportaudio.a(pa_mac_core.o)
_AudioIOProc in libportaudio.a(pa_mac_core.o)
"_AudioHardwareGetProperty", referenced from:
_PaMacCore_Initialize in libportaudio.a(pa_mac_core.o)
"_AudioHardwareGetPropertyInfo", referenced from:
_PaMacCore_Initialize in libportaudio.a(pa_mac_core.o)
"_AudioObjectSetPropertyData", referenced from:
_PaMacCore_Initialize in libportaudio.a(pa_mac_core.o)
"_AudioOutputUnitStart", referenced from:
_StartStream in libportaudio.a(pa_mac_core.o)
"_AudioOutputUnitStop", referenced from:
_StopStream in libportaudio.a(pa_mac_core.o)
_AudioIOProc in libportaudio.a(pa_mac_core.o)
"_AudioStreamGetProperty", referenced from:
_CalculateFixedDeviceLatency in libportaudio.a(pa_mac_core.o)
"_AudioUnitAddPropertyListener", referenced from:
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
"_AudioUnitGetProperty", referenced from:
_StopStream in libportaudio.a(pa_mac_core.o)
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
_startStopCallback in libportaudio.a(pa_mac_core.o)
"_AudioUnitInitialize", referenced from:
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
"_AudioUnitRender", referenced from:
_AudioIOProc in libportaudio.a(pa_mac_core.o)
"_AudioUnitReset", referenced from:
_StopStream in libportaudio.a(pa_mac_core.o)
"_AudioUnitSetProperty", referenced from:
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
"_AudioUnitUninitialize", referenced from:
_CloseStream in libportaudio.a(pa_mac_core.o)
"_CFRelease", referenced from:
_PaMacCore_GetChannelName in libportaudio.a(pa_mac_core.o)
"_CFStringCreateWithFormat", referenced from:
_PaMacCore_GetChannelName in libportaudio.a(pa_mac_core.o)
"_CFStringGetCString", referenced from:
_PaMacCore_GetChannelName in libportaudio.a(pa_mac_core.o)
"_CFStringGetLength", referenced from:
_PaMacCore_GetChannelName in libportaudio.a(pa_mac_core.o)
"_CloseComponent", referenced from:
_CloseStream in libportaudio.a(pa_mac_core.o)
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
"_FindNextComponent", referenced from:
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
"_Gestalt", referenced from:
_PaMacCore_Initialize in libportaudio.a(pa_mac_core.o)
"_OpenAComponent", referenced from:
_OpenAndSetupOneAudioUnit in libportaudio.a(pa_mac_core.o)
"___CFConstantStringClassReference", referenced from:
CFString in libportaudio.a(pa_mac_core.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我的印象是我没有正确链接事物。有什么建议吗?
最佳答案
您需要包含 Apple 框架:
就像你已经做了 libportaudio.a
关于c - 尝试 portaudio 示例,但得到 "ld: symbol(s) not found for architecture x86_64",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28653678/