2011-07-16 11 views
4

OSX 10.6で32ビットモードのサードパーティ製ライブラリを構築しています(ライブラリはXerces 2.8です)。プリプロセッサ定義__LP64__が設定されていると判断しました。しかし、私の知る限り、それはサードパーティのプロジェクトのすべての構成ファイル内で設定されていない、これはで定義されている場所#define __LP64__用(ファインダーを経由して)すべてのファイルを通じてグローバル検索を実行すると、私には明らかにならない見ることができるようにシステム。__LP64__は、OSX 10.6のC++アプリケーションのデフォルトビルド用に定義されていますか?

私は(Xcodeのが関与していない)コマンドラインでmakeを経由してライブラリを構築しています。

私は __LP64__が定義されている場所を知っていただきたいと思い

- と何その目的は、私が32ビットモードでプロジェクトを構築していますことを与えています。

答えて

11

は、それは、コンパイラによってではなく、任意のヘッダに自動的に定義されます。それが設定されている場合は、64ビットのターゲット用に構築しています。

(ヘッダコンパイラがまだされていない場合、それは。このような場合はあなたが考える場合は、あなたのコードに#define __LP64__を追加してはならないのに、それを定義し、決定するために前処理中にエラーで見ることができます以前の場所が定義されます。)

+12

コマンド 'cppの-dMは/ dev/null'なので、あなたのプリプロセッサによって定義されたマクロのすべてのリストが表示されます。 –

+0

'cpp -dM/dev/null'は金です!これありがとう。 –

関連する問題