Go에서는 대상 아키텍처를 기반으로 컴파일 시 특정 소스 파일을 제외해야 하는 경우가 가끔 있습니다. 예를 들어 CGo를 사용하여 기본 기능과 상호 작용하는 Windows용 프로그램을 개발할 때 Linux에서 컴파일하면 헤더 파일 누락과 같은 종속성 문제가 발생할 수 있습니다.
이 문제를 해결하기 위해 Go는 빌드 제약 조건을 사용합니다. 개발자는 파일이 패키지에 포함되어야 하는 조건을 지정합니다. 빌드 제약 조건을 활용하면 대상 아키텍처를 기반으로 특정 소스 파일을 제외할 수 있습니다.
아키텍처 종속 제약 조건 지정:
컴파일에서 특정 아키텍처를 제외하려면 다음을 사용하세요. 다음 구문:
// +build !<architecture>
예를 들어 64비트 x86 아키텍처를 제외하려면:
// +build !amd64
또는 쉼표를 사용하여 제외할 여러 아키텍처를 지정할 수 있습니다.
// +build !amd64,!arm64
계층적 제약 조건 사용:
복잡한 조건의 경우 계층적 제약 조건을 사용할 수 있습니다.
// +build linux // +build amd64 // +build solaris // +build 386,!go1.12
이 계층 구조는 첫 번째 제약 조건 세트에 대해 다음을 보여줍니다. Linux와 amd64를 모두 충족해야 하며, 두 번째 세트에서는 Solaris가 필요하며 386 또는 Go 1.12 이전 버전 중 하나를 충족할 수 있습니다.
파일 이름 지정에 따른 제외:
빌드 제약 조건 외에도 명명 규칙에 따라 파일을 제외할 수 있습니다.
예:
Linux에서 빌드할 때 windows.c라는 소스 파일을 제외하려면 파일 상단에 다음 빌드 제약 조건을 삽입하세요.
// +build ignore
또는 파일 이름을 windows_windows.c로 바꾸세요. .
빌드 제약 조건과 파일 명명 규칙을 활용하면 Go 프로그램을 컴파일할 때 대상 아키텍처를 기반으로 특정 소스 파일을 효과적으로 제외할 수 있으므로 다양한 환경에 맞는 맞춤형 빌드가 가능합니다.
위 내용은 대상 아키텍처를 기반으로 Go 소스 파일을 제외하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!