2011-07-16 26 views
4

我在OSX 10.6 32位模式下建立一個第三方庫(庫是Xerces的2.8)。我確定設置了預處理器定義__LP64__。然而,據我可以看到它沒有被設置的第三方項目的任何配置文件中,並做通所有文件#define __LP64__全局搜索(通過搜索),其中,這是被定義不透露給我係統。在OSX 10.6上爲C++應用程序的默認版本定義__LP64__在哪裏?

我建立通過make庫在命令行(Xcode中不涉及)。

我想知道在哪裏__LP64__定義 - 其目的是,因爲我在建32位模式下什麼項目。

回答

11

它由編譯器,而不是在任何頭自動定義。如果已設置,則正在構建64位目標。

(A頭可以定義它,如果編譯器有沒有準備好,但它不應該。如果你認爲是這樣的話,加#define __LP64__到您的代碼,並進行預處理,以確定在查看錯誤以前的位置定義。)

+12

命令'CPP -dM的/ dev/null'會給你一切由您的預處理器定義的宏的列表。 –

+0

'cpp -dM/dev/null'是一個黃金!這次真是萬分感謝。 –

相關問題