C 尝试portaudio示例,但得到;ld:未找到架构x86“U 64”的符号;
我试图在MacOS10.10上使用portaudio,但在尝试编译示例程序时出错。以下是我所做的: -/配置和制作。没问题 -将示例文件“pa_devs.c”、libportaudio.a和portaudio.h复制到名为Test1的单独目录中 -试图编译它C 尝试portaudio示例,但得到;ld:未找到架构x86“U 64”的符号;,c,macos,audio,linker,portaudio,C,Macos,Audio,Linker,Portaudio,我试图在MacOS10.10上使用portaudio,但在尝试编译示例程序时出错。以下是我所做的: -/配置和制作。没问题 -将示例文件“pa_devs.c”、libportaudio.a和portaudio.h复制到名为Test1的单独目录中 -试图编译它 gcc -o Test1 pa_devs.c libportaudio.a -lm -出现以下错误: Undefined symbols for architecture x86_64: "_AudioConvertHostTimeT
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框架:
- CoreServices.framework
- CoreFoundation.framework
- AudioUnit.framework
- AudioToolbox.framework
- CoreAudio.framework
正如你已经做的那样,libportaudio.a谢谢凯文!为了给NetBeans用户争取时间,下面是我在安装了portaudio的Mac OS X 10.12 sierra、NetBeans 8.2()
- 项目必须
#包括“portaudio.h”
- 右键单击项目>属性
- 构建>链接器
- 附加选项,添加以下内容:
现在它开始工作了。这对于像我这样的新手来说是非常详细的。为了便于参考,还可以包含实际的
gcc
命令。在从源代码构建了portaudio
之后,我发现以下几点对我有用:gcc-o设备\u测试示例/pa\u devs.c/usr/local/lib/libportaudio.a-框架核心服务-框架核心基础-框架音频单元-框架音频工具箱-框架核心音频
-v /usr/local/lib/libportaudio.a -framework CoreServices -framework
CoreFoundation -framework AudioUnit -framework AudioToolbox -framework CoreAudio