23

我应该为 OS X 特定代码使用什么 C 预处理器条件?如果我正在为 OS X 编译,我需要包含一个特定的库,或者如果我正在为 Linux 编译,我需要包含一个不同的头文件。

我知道有,__APPLE__但我不知道这是否是 OS X 10.x 的当前条件。

4

6 回答 6

41

此操作系统宏列表表示两者 的存在__APPLE____MACH__指示 OSX。

也在第 18 行确认了部分 来源的fdisk.

于 2009-10-07T01:23:03.463 回答
7

__APPLE__会告诉您您正在 Apple 平台上进行编译。除非您需要支持 OS X 之前的 MacOS 版本,否则应该已经足够了。或者,您可以使用__APPLE__and__MACH__来确保您在 OS X 上进行编译。

于 2009-10-07T01:37:16.067 回答
2

如果我没记错的话是__APPLE__:)

于 2009-10-07T01:21:58.077 回答
0

此代码示例可能会对您有所帮助 -

if defined(__APPLE__)
#include "TargetConditionals.h"
  if (!defined(TARGET_OS_IPHONE) && !defined(TARGET_IPHONE_SIMULATOR))
 {
   //write your OSX specific code here
 } 
于 2013-11-19T10:11:07.873 回答
0

旧式原始:

#ifdef WIN32
// windows.
#elif __APPLE__
// osx and ios.
#endif
于 2015-06-06T15:39:52.293 回答
0

此页面包含所有操作系统预定义宏的列表。

对于 mac OSX,__APPLE__&&都__MACH__需要定义。

于 2015-12-09T18:15:50.637 回答