我应该为 OS X 特定代码使用什么 C 预处理器条件?如果我正在为 OS X 编译,我需要包含一个特定的库,或者如果我正在为 Linux 编译,我需要包含一个不同的头文件。
我知道有,__APPLE__
但我不知道这是否是 OS X 10.x 的当前条件。
我应该为 OS X 特定代码使用什么 C 预处理器条件?如果我正在为 OS X 编译,我需要包含一个特定的库,或者如果我正在为 Linux 编译,我需要包含一个不同的头文件。
我知道有,__APPLE__
但我不知道这是否是 OS X 10.x 的当前条件。
此操作系统宏列表表示两者 的存在__APPLE__
并 __MACH__
指示 OSX。
也在第 18 行确认了部分 来源的fdisk
.
__APPLE__
会告诉您您正在 Apple 平台上进行编译。除非您需要支持 OS X 之前的 MacOS 版本,否则应该已经足够了。或者,您可以使用__APPLE__
and__MACH__
来确保您在 OS X 上进行编译。
如果我没记错的话是__APPLE__
:)
此代码示例可能会对您有所帮助 -
if defined(__APPLE__)
#include "TargetConditionals.h"
if (!defined(TARGET_OS_IPHONE) && !defined(TARGET_IPHONE_SIMULATOR))
{
//write your OSX specific code here
}
旧式原始:
#ifdef WIN32
// windows.
#elif __APPLE__
// osx and ios.
#endif
此页面包含所有操作系统预定义宏的列表。
对于 mac OSX,__APPLE__
&&都__MACH__
需要定义。