동시에 여러 패키지 바이너리 빌드
귀하의 문의에 따르면, 최상위 "cmd"를 생성하여 여러 패키지 바이너리를 동시에 빌드할 수 있습니다. " 폴더 구조는 다른 곳에서 제안되었습니다. 그러나 이 접근 방식에는 문제가 있습니다.
"cmd" 폴더 구조를 사용하여 개별 바이너리를 구축하려면:
다음과 같은 파일 구조가 있는지 확인하세요(예: 작업 예에 따라):
├── cmd │ ├── bin1 │ │ └── main.go │ ├── bin2 │ │ └── main.go ├── src │ ├── shared │ │ ├── foo │ │ │ └── foo.go
빌드하려는 각 바이너리에 대해 다음 명령을 실행하고 "< 바이너리 이름>" 원하는 바이너리 이름으로:
go build -o "<binary-name>" ./cmd/<binary-name></p></li> </ol> <p>예:</p> <pre class="brush:php;toolbar:false">go build -o bin1 ./cmd/bin1 go build -o bin2 ./cmd/bin2
이렇게 하면 프로젝트의 루트 디렉터리에 "bin1" 및 "bin2" 바이너리가 생성됩니다. .
스크립트를 사용한 대체 접근 방식
바이너리를 $GOPATH/bin에 설치하지 않으려면 패키지를 반복하고 각 바이너리를 개별적으로 빌드합니다.
다음 내용으로 "build-all.sh"라는 스크립트를 생성합니다.
<code class="sh">#!/bin/bash # Iterate over the packages in the "cmd" directory for CMD in `ls cmd`; do # Build the binary for each package go build -o $CMD ./cmd/$CMD done</code>
스크립트 실행 가능:
<code class="sh">chmod +x build-all.sh</code>
스크립트를 실행하여 한 단계로 모든 바이너리를 빌드합니다.
<code class="sh">./build-all.sh</code>
이 접근 방식은 유연성과 제어를 제공합니다. 바이너리 빌드 프로세스를 통해 많은 오픈 소스 프로젝트에서 사용하는 것을 모방합니다.
위 내용은 여러 Go 바이너리를 동시에 빌드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!