挑戰:
在編譯期間確定目標CPU 架構可能是一個挑戰由於不同編譯器採用不同的非標準預處理器定義。這就需要一種可靠且一致的方法來偵測架構。
可靠的檢測:
雖然沒有普遍建立的標準來在編譯時檢測CPU 架構-時間,最可靠的方法是利用以下特定於編譯器的定義:
綜合標頭:
For處理架構偵測的集中方式,請考慮使用包含所有相關定義的頭檔。這樣的標頭可以提供以下功能:
#ifdef _M_X64 #define CPU_ARCH "x86_64" #elif defined(__i386__) #define CPU_ARCH "x86_32" ... #else #define CPU_ARCH "UNKNOWN" #endif
透過將此標頭合併到您的程式碼中,您可以輕鬆檢查 CPU_ARCH 值以確定目標架構。
自訂偵測範例:
要進行更詳細的架構偵測,請考慮以下程式碼snippet:
extern "C" { const char *getBuild() { #if defined(__x86_64__) || defined(_M_X64) return "x86_64"; ... #else return "UNKNOWN"; #endif } }
此函數提供了廣泛的偵測能力,涵蓋x86、ARM、MIPS、PowerPC等架構。
以上是如何在編譯時可靠地偵測 CPU 架構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!