使用标准C在Mac OS X中获取操作系统版本

Jes*_*ica 18 c macos

我试图在C中以编程方式获取Mac OS X的版本.在搜索了一段时间之后我尝试了这段代码:

#include <CoreServices/CoreServices.h>

int GetOS()
{
    SInt32 majorVersion,minorVersion,bugFixVersion;

    Gestalt(gestaltSystemVersionMajor, &majorVersion);
    Gestalt(gestaltSystemVersionMinor, &minorVersion);
    Gestalt(gestaltSystemVersionBugFix, &bugFixVersion);

    printf("Running on Mac OS X %d.%d.%d\n",majorVersion,minorVersion,bugFixVersion);    

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

XCode返回LD错误:

Undefined symbols for architecture x86_64: "_Gestalt", referenced from: _GetOS in main.o

我错过了什么?你怎么做到这一点?

我也发现了这个片段

[[NSProcessInfo processInfo] operatingSystemVersionString]
Run Code Online (Sandbox Code Playgroud)

但我不知道怎么用C写的.

use*_*116 17

您是否已将适当的框架传递给GCC以便启用CoreServices

% gcc -framework CoreServices -o getos main.c
Run Code Online (Sandbox Code Playgroud)