23

OS X 固有のコードには、どの C プリプロセッサ条件を使用すればよいですか? OS X 用にコンパイルする場合は特定のライブラリを含める必要があり、Linux 用にコンパイルする場合は別のヘッダーを含める必要があります。

あることは知ってい__APPLE__ますが、それが現在の OS X 10.x の条件であるかどうかはわかりません。

4

6 に答える 6

41

このオペレーティング システム マクロのリストには、両方 __APPLE__の 存在が__MACH__示され、OSX が示されています。

のソースfdisk部分の18行目も確認 。

于 2009-10-07T01:23:03.463 に答える
7

__APPLE__Appleプラットフォームでコンパイルしていることがわかります。OS Xより前のMacOSバージョンをサポートする必要がない限り、それで十分です。または、 OSXでコンパイルしていることを確認するためにを__APPLE__使用することもできます。__MACH__

于 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

このページには、すべての OS 定義済みマクロのリストが含まれています。

Mac OSX の場合、__APPLE__&&の両方__MACH__を定義する必要があります。

于 2015-12-09T18:15:50.637 に答える