我正在尝试用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;
}

xcode返回一个ld错误:
Undefined symbols for architecture x86_64: "_Gestalt", referenced from: _GetOS in main.o
我错过了什么?你怎么做到的?
我还发现了这个片段
[[NSProcessInfo processInfo] operatingSystemVersionString]

但我不知道怎么用C来写。

最佳答案

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

% gcc -framework CoreServices -o getos main.c

关于c - 使用标准C在Mac OS X中获取OS版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5969485/

10-11 16:49