对于 OS X 特定代码,我应该使用什么 C 预处理器条件?
对于 OS X 特定代码,我应该使用什么 C 预处理器条件?如果我为 OS X 进行编译,则需要包含特定的库;如果为 Linux 进行编译,则需要包含不同的标头。
我知道有 __APPLE__
但我不知道这是否是 OS X 10.x 的当前条件。
What C preprocessor conditional should I use for OS X specific code? I need to include a specific library if I am compiling for OS X or a different header if I am compiling for Linux.
I know there is __APPLE__
but I don't know if that is a current conditional for OS X 10.x.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
此操作系统宏列表表示两者都存在 < code>__APPLE__ 和
__MACH__
表示 OSX。还在 fdisk 源代码的第 18 行进行了确认。
This list of operating system macros says the presence of both
__APPLE__
and__MACH__
indicate OSX.Also confirmed at line 18 of part of the source for
fdisk
.__APPLE__
会告诉您正在 Apple 平台上进行编译。除非您需要支持 OS X 之前的 MacOS 版本,否则这应该足够了。或者,您可以使用__APPLE__
和__MACH__
来确保您在 OS X 上进行编译。__APPLE__
will tell you you're compiling on an Apple platform. Unless you need to support MacOS versions before OS X, that should be good enough. Alternately, you could use__APPLE__
and__MACH__
to make sure you're compiling on OS X.如果我没记错的话,是
__APPLE__
:)If I remember correctly, it's
__APPLE__
:)此代码示例可能会帮助您 -
This code example may help you -
旧式原始:
old style raw:
此页面包含所有操作系统预定义宏的列表。
对于 mac OSX,
__APPLE__
&&需要定义__MACH__
。This page contains a list of all OS predefined macros.
For mac OSX both the
__APPLE__
&&__MACH__
need to be defined.