如何使用Clang链接macOS上的Core框架?

时间:2017-03-13 16:50:44

标签: c++ macos linker clang

我正在尝试使用Clang在macOS上构建一个C ++应用程序。我正在使用CoreAudio API,因此我需要链接CoreServices框架。但是,我收到以下错误:

  

clang:错误:未知参数:' - framework CoreServices'

这是我的Clang版本:

clang --version 
clang version 3.9.1 (tags/RELEASE_391/final)
Target: x86_64-apple-darwin16.4.0
Thread model: posix
InstalledDir: /usr/local/bin

这些是我的链接器标志:

-framework CoreServices

我在这里做错了什么?

1 个答案:

答案 0 :(得分:4)

以下程序代码打印出输出设备占用的大小(这只是为了使用CoreAudio API的某些功能):

this.setState

此C ++程序可使用以下命令进行编译:

// main.cpp
#include <cstdlib>
#include <cstdio>

#include <CoreAudio/CoreAudio.h>
#include <CoreServices/CoreServices.h>

int
main (void)
{
    AudioObjectPropertyAddress property = {
        kAudioHardwarePropertyDevices,
        kAudioObjectPropertyScopeGlobal,
        kAudioObjectPropertyElementMaster
    };

    OSStatus status;
    UInt32 size;

    status = AudioObjectGetPropertyDataSize(
            kAudioObjectSystemObject,
            &property,
            0,
            NULL,
            &size);

    printf("status(%d), size: %d\n", status, size);

    return EXIT_SUCCESS;
}

并会生成一个clang -framwork CoreServices -framework CoreAudio main.cpp 可执行文件,然后可以使用

进行调用
a.out