Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 尝试portaudio示例,但得到;ld:未找到架构x86“U 64”的符号;_C_Macos_Audio_Linker_Portaudio - Fatal编程技术网

C 尝试portaudio示例,但得到;ld:未找到架构x86“U 64”的符号;

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

我试图在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:
  "_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