課題:
コンパイル中にターゲット CPU アーキテクチャを決定するのは困難な場合がありますこれは、コンパイラによって採用される非標準のプリプロセッサ定義が異なるためです。これは、アーキテクチャを検出するための信頼性と一貫性のある方法の必要性を示しています。
信頼性の高い検出:
コンパイル時に CPU アーキテクチャを検出するための普遍的に確立された標準はありません。最も信頼性の高いアプローチは、次のコンパイラ固有の定義を利用することです:
包括的なヘッダー:
アーキテクチャ検出を一元的に処理する方法として、関連するすべての定義を含むヘッダー ファイルの利用を検討してください。このようなヘッダーは次の機能を提供できます。
#ifdef _M_X64 #define CPU_ARCH "x86_64" #elif defined(__i386__) #define CPU_ARCH "x86_32" ... #else #define CPU_ARCH "UNKNOWN" #endif
このヘッダーをコードに組み込むことで、CPU_ARCH 値を簡単にチェックしてターゲット アーキテクチャを決定できます。
カスタム検出例:
さらに詳細なアーキテクチャ検出については、次のコード スニペットを検討してください。
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 中国語 Web サイトの他の関連記事を参照してください。