라이브러리와 CLI를 동일한 디렉토리에 묶을 수 있습니까?
라이브러리(내보낸 기능) 및 명령줄 인터페이스(CLI 실행 가능)는 이것이 실용적인지 의문을 제기합니다. 문제는 go 컴파일러에 프로그램 실행을 위한 "main" 기능이 포함된 패키지와 해당 기능이 포함된 라이브러리가 모두 필요할 때 발생합니다.
문제: 다중 패키지
제공된 예에서 알 수 있듯이 "main"과 라이브러리 패키지가 모두 동일한 디렉토리에 공존하는 경우 go 컴파일러는 동일한 디렉토리에서 여러 패키지를 찾는 것에 대해 불평합니다. 디렉터리.
해결책: 중첩 패키지
동일한 디렉터리에 패키지를 유지 관리하는 대신 간단한 해결책은 상위 디렉터리 내에 새 하위 디렉터리를 만들어 보관하는 것입니다. 라이브러리 또는 CLI 패키지 중 하나입니다. 패키지의 새 위치를 반영하도록 가져오기를 업데이트하는 것을 잊지 마세요.
중첩 패키지의 예
아래 수정된 예에서 "a" 패키지는 "so-multipack" 디렉토리 내의 새로운 하위 디렉토리 "a":
so-multipack/ a/ a.go main.go
업데이트됨 main.go
package main import "../so-multipack/a" func main() { a.Hello() }
a/a.go 업데이트
package a import "fmt" func Hello() { fmt.Println("hello from a") }
성공적인 컴파일
업데이트된 디렉토리 구조를 사용하여 이제 go 명령이 실행됩니다. 성공적으로:
go run main.go # Output: hello from a go build # Creates a "so-multipack" executable
동일한 상위 디렉터리 내에 패키지를 중첩함으로써 라이브러리와 CLI 실행 파일을 모두 성공적으로 수용할 수 있습니다.
위 내용은 Go 라이브러리와 CLI를 동일한 디렉터리에 묶을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!