문제:
여러 패키지로 Go 프로그램을 컴파일할 때 , 일부 패키지에 특정 아키텍처에만 적용 가능한 종속성(예: CGo)이 포함된 경우 오류가 발생할 수 있습니다. 이러한 경우 대상이 아닌 아키텍처를 컴파일하는 동안 해당 파일을 제외할 수 있습니다.
해결책:
Go의 빌드 제약 조건은 조건부로 포함하거나 대상 아키텍처를 포함한 다양한 조건에 따라 소스 파일을 제외합니다. 사용 방법은 다음과 같습니다.
파일에 빌드 제약 조건 추가:
제외하려는 소스 파일 상단에 // build로 시작하는 주석 줄입니다. 이 지시어 다음에 파일을 컴파일해야 하는 조건을 지정합니다. 예를 들어 Linux를 제외한 모든 아키텍처에 대한 파일을 제외하려면:
// +build !linux
386을 제외한 모든 아키텍처에 대한 파일을 제외하려면:
// +build !386
CGo가 활성화된 경우 파일을 제외하려면:
// +build !cgo
파일 명명 규칙 사용:
또는 파일 명명 규칙을 사용하여 빌드 제약 조건을 지정할 수 있습니다. 예를 들어 파일 이름을 package_linux.go로 지정하면 Linux용으로 빌드할 때만 포함됩니다.
예:
다음을 고려하세요. 디렉터리 구조:
- main.go - linux.go - windows.go
Linux용 프로그램을 컴파일하려면 linux.go에 다음 빌드 제약 조건을 추가하세요.
// +build linux
Windows용 프로그램을 컴파일하려면 다음 빌드를 추가하세요. windows.go에 대한 제약 조건:
// +build windows
빌드 제약 조건을 사용하면 다양한 아키텍처에 대한 컴파일 중에 필요한 코드만 포함되도록 보장할 수 있으므로 아키텍처 관련 파일을 비 아키텍처에서 컴파일하려고 시도하는 문제를 해결할 수 있습니다. -타겟 플랫폼.
위 내용은 컴파일하는 동안 아키텍처를 기반으로 Go 소스 파일을 제외하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!