>백엔드 개발 >Golang >Go에서 동일한 이름을 가진 라이브러리와 독립 실행형 바이너리를 어떻게 구축할 수 있나요?

Go에서 동일한 이름을 가진 라이브러리와 독립 실행형 바이너리를 어떻게 구축할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-11-27 01:25:09499검색

How Can I Build a Library and a Standalone Binary with the Same Name in Go?

동일한 이름을 가진 여러 라이브러리 및 바이너리

이 질문은 동일한 이름을 가진 라이브러리와 독립형 바이너리를 생성할 수 있는 가능성을 탐구합니다. Tar 명령줄 도구 및 해당 라이브러리 기능의 예는 이 시나리오를 보여줍니다.

처음에 사용자는 다음 디렉터리 구조를 시도했습니다.

src/
    tar/
        tar.go # belongs to package tar
        main.go # imports tar and provides a main function

그러나 이로 인해 "명령 "는 원하는 tar 명령이 아니라 tarbin이라고 합니다.

이 문제를 해결하기 위해 사용자는 go build -o를 사용하여 출력 바이너리 이름을 명시적으로 지정하는 해결 방법을 사용했습니다. $GOPATH/bin/tar tar.

응답자가 제안하는 보다 우아한 솔루션은 코드를 다음과 같이 구성하는 것입니다.

src/
    tar/
        tar.go         # tar libary
        tar/
            main.go    # tar binary

이 구조를 사용하면 결과 바이너리의 이름이 tar가 됩니다. , 라이브러리 이름은 tar입니다.

코드가 GitHub에서 호스팅되는 경우 디렉토리 구조는 다음과 같습니다. 다음은 다음과 같습니다.

src/
    github.com/
        you/
            tar/
                tar.go         # tar libary
                tar/
                    main.go    # tar binary

이 조직에서는 go get install github.com/you/tar/tar와 함께 사용할 때 go 명령이 바이너리와 라이브러리를 모두 설치할 수 있도록 보장합니다.

장점 이 접근 방식의 장점은 go install ./....

을 사용하여 프로젝트의 모든 코드를 빌드하고 테스트할 수 있다는 것입니다.

위 내용은 Go에서 동일한 이름을 가진 라이브러리와 독립 실행형 바이너리를 어떻게 구축할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.