도전 과제:
컴파일 시 대상 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 값을 쉽게 확인하여 대상 아키텍처를 결정할 수 있습니다.
사용자 정의 감지 예:
더 자세한 아키텍처 감지를 위해 다음 코드를 고려하세요. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!