我应该为OS X特定代码使用什么C预处理器条件?
我应该为OS X特定代码使用什么C预处理器条件? 如果我正在编译OS X,我需要包含一个特定的库,如果我正在编译Linux,我需要包含一个不同的头。
我知道有__APPLE__
但我不知道这是否是OS X 10.x的当前条件。
此操作系统宏列表表明__MACH__
和__MACH__
的存在表示OSX。
还在第18行确认了fdisk
的部分源代码 。
__APPLE__
会告诉您正在Apple平台上进行编译。 除非您需要在OS X之前支持MacOS版本,否则这应该足够了。 或者,您可以使用__MACH__
和__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
此页面包含所有OS预定义宏的列表。
对于mac OSX,需要定义__MACH__
&& __MACH__
。