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