Golang 빌드 태그를 추가하는 방법

Golang Bildeu Taegeuleul Chugahaneun Bangbeob



Go의 빌드 태그는 특정 빌드 제약 조건에 따라 빌드 프로세스 중에 특정 코드를 조건부로 포함하거나 제외할 수 있는 강력한 기능입니다. 이러한 유연성을 통해 다양한 운영 체제, 아키텍처 또는 기타 환경별 요구 사항에 맞는 플랫폼별 빌드를 만들 수 있습니다. 빌드 태그는 소스 파일 시작 부분, 패키지 선언 바로 위에 추가되는 특수 주석입니다. 이러한 태그는 컴파일 프로세스 중에 해당 파일의 코드를 처리하는 방법에 대한 지침을 Go 빌드 시스템에 제공합니다.

예 1: Linux 시스템용 Golang 빌드 태그 추가

Linux 운영 체제를 대상으로 하려면 '// +build linux' 빌드 태그를 추가할 수 있습니다.

//리눅스 빌드로 이동

// +리눅스 빌드

패키지 기본

수입 'fmt'

기능 기본 () {

fmt . 인쇄 ( '안녕하세요 리눅스 시스템 예시' )

}

여기서는 대상 시스템이 Linux인 경우에만 코드를 빌드해야 함을 지정하는 Go의 빌드 제약 조건을 설정했습니다. 그런 다음 패키지를 정의하고 코드에 필요한 명령문을 가져옵니다. 그런 다음 'fmt' 패키지의 'Println' 호출을 사용하여 메시지를 인쇄하는 main() 메서드를 입력합니다.







따라서 Linux 운영 체제의 경우 메시지가 콘솔에 성공적으로 표시됩니다.





예 2: Windows 시스템용 Golang 빌드 태그 추가

Windows 플랫폼에서 코드를 실행하려는 경우 파일 시작 부분에 '// +build windows' 빌드 태그를 사용합니다. 이를 통해 Windows가 의도된 플랫폼인 경우에만 코드가 빌드에 통합되도록 할 수 있습니다.





// +창 빌드

패키지 기본

수입 'fmt'

기능 기본 () {

fmt . 인쇄 ( '안녕하세요, Windows 예시입니다!' )

}

여기서는 '// +빌드 창' 빌드 제약 조건을 사용하여 Windows 플랫폼용으로 빌드할 때만 코드가 컴파일되고 실행되도록 합니다. 그런 다음 패키지 및 가져오기 수정자와 함께 코드에 필요한 패키지를 포함합니다. 그런 다음 Golang에서 창의 태그를 작성할 때 명령문을 인쇄하기 위해 println() 함수를 사용하는 main() 함수가 옵니다.

Windows 시스템에서 이 프로그램을 빌드하고 실행하면 “Hello, Windows example!”이 표시됩니다. 콘솔에 메시지를 보냅니다. 빌드 제약으로 인해 다른 운영 체제에서는 프로그램이 빌드되거나 실행되지 않습니다.



예 3: Windows가 아닌 시스템에 Golang 빌드 태그 추가

반대로, Windows용으로 빌드할 때 코드를 제외하려면 “!” 빌드 태그가 있는 느낌표입니다.

// +빌드!창

패키지 기본

수입 'fmt'

기능 기본 () {

fmt . 인쇄 ( '안녕하세요, Windows만 빼고요!' )

}

여기서는 코드가 Windows 이외의 플랫폼에서 빌드되고 실행되어야 함을 나타내는 제약 조건 지시문을 작성합니다. Windows 앞의 느낌표(!)는 Windows를 제외한 모든 플랫폼에 이 코드가 포함되어야 함을 나타냅니다. 그런 다음 먼저 패키지를 추가하고 main() 함수를 호출하여 println() 함수 내부에 전달된 메시지를 실행하는 이전 함수와 동일한 프로그램을 진행합니다.

따라서 출력은 운영 체제 콘솔에 메시지를 생성합니다. 빌드 제약으로 인해 Windows 운영 체제에서는 실행되지 않습니다.

예시 4: OR 로직을 사용하여 Golang 빌드 태그 추가

Windows 또는 Linux를 대상으로 할 때 코드를 포함하려면 '// +build windows Linux' 빌드 태그를 사용할 수 있습니다.

// +윈도우 빌드 리눅스

패키지 기본

수입 'fmt'

기능 기본 () {

fmt . 인쇄 ( '안녕하세요, Windows 또는 Linux 사용자 여러분' )

}

여기서는 Windows 및 Linux 운영 체제 모두에 대해 빌드하려는 논리적 OR을 사용하여 빌드 제약 조건을 적용합니다. '// +build windows Linux' 줄은 대상 플랫폼이 Windows 또는 Linux일 때 이 파일이 빌드에 포함되어야 함을 지정합니다. 다음으로 기본 입력 및 출력 기능을 제공하는 Go 표준 라이브러리에서 'fmt' 패키지를 가져옵니다. 메인 함수에서는 'fmt' 패키지의 Println() 함수를 사용하여 '안녕하세요, Windows 또는 Linux 사용자 여러분' 문자열 문을 인쇄합니다.

따라서 출력은 다음과 같이 검색됩니다. Windows 운영 체제를 사용하든 Linux 운영 체제를 사용하든 동일한 메시지가 생성됩니다.

예 5: AND 로직을 사용하여 Golang 빌드 태그 추가

더 복잡한 조건을 생성하기 위해 여러 빌드 태그를 지정할 수 있습니다. '// +build windows,linux' 명령을 사용하여 Linux 및 Windows용 코드를 생성할 수 있습니다.

// +창 빌드,386

패키지 기본

수입 'fmt'

기능 기본 () {

fmt . 인쇄 ( '이것은 32비트 Windows입니다.' )

}

여기서 정의된 빌드 제약 조건은 '// +build windows,386'으로, 대상 플랫폼이 32비트 Windows인 경우 Go 파일이 빌드에 포함되어야 함을 지정합니다. Windows와 386 사이에 논리 AND 연산자 역할을 하는 쉼표 ','를 사용합니다. 이는 코드가 빌드에 포함되려면 두 조건이 모두 충족되어야 함을 의미합니다.

그런 다음 이전 예제와 유사하게 Go 표준 라이브러리에서 'fmt' 패키지를 가져와서 출력에 Println 함수()를 사용합니다. 명령문이 println() 함수에 인수로 전달되는 프로그램의 main() 함수가 있습니다.

32비트 Windows 시스템에서 이 프로그램을 빌드하고 실행하면 지정된 메시지가 출력으로 표시됩니다. 그러나 다른 운영 체제나 아키텍처에서 빌드하고 실행하려고 하면 빌드에 포함되지 않습니다.

예제 6: 특정 함수에 대한 Golang 빌드 태그 추가

또한 빌드 태그를 파일 내의 특정 기능에 적용할 수도 있습니다. 빌드 제약으로 인해 이제 특정 기능을 조건부로 포함하거나 제거할 수 있습니다.

패키지 기본

수입 'fmt'

기능 기본 () {

fmt . 인쇄 ( '안녕하세요, 즐기세요!' )

인쇄Windows메시지 ()

}

// +창 빌드

기능 인쇄Windows메시지 () {

fmt . 인쇄 ( 'Windows 운영 체제에서 안녕하세요' )

}

여기서는 'fmt' 패키지에서 제공하는 Println() 메서드를 사용하여 처음에 메시지를 인쇄하는 main() 메서드로 이동합니다. 그런 다음 main() 함수 아래에 printWindowsMessage() 함수를 배포하고 '// +build windows' 빌드 제약 조건을 지정합니다. 이는 대상 플랫폼이 Windows인 경우에만 해당 기능이 빌드에 포함됨을 나타냅니다.

마지막으로 Println() 함수를 사용하여 지정된 “Hello From Windows Operating system” 메시지를 인쇄하도록 printWindowsMessage() 함수를 설정했습니다.

따라서 일반 메시지와 플랫폼별 메시지를 모두 표시하는 출력이 검색됩니다. 다른 운영 체제에서 빌드하고 실행하면 printWindowsMessage() 함수가 빌드에 포함되지 않고 일반 메시지만 표시됩니다.

결론

Go에 빌드 태그를 추가하면 빌드 프로세스 중에 코드 포함을 사용자 정의할 수 있는 기능이 제공됩니다. 빌드 태그를 활용하여 플랫폼별 빌드를 생성하고, 다양한 아키텍처에 맞게 코드를 최적화하고, 특정 기능을 조건부로 포함할 수도 있습니다.