먼가 복잡하다.
일단 모듈 패스는 초기 모듈/경로/패키지 명 식으로 잡히는 듯.
편리하다면 편리한데.. 직관적으로 와닫진 않는 느낌.. 그냥 .a나 .o로 빌드하고 링크 하는건 가능하려나?
아 그리고 go build 명령에 의해서 빌드 될 때
mod init의 가장 마지막 명칭으로 바이너리가 생성된다.
test/m 으로 패키지를 지었기에, 바이너리가 m으로 생성되었다.
$ tree . ├── go.mod ├── lib │ ├── div │ │ └── div.go │ └── sub │ └── sub.go ├── m ├── main.go └── sum └── sum.go |
$ go build # test/m ./main.go:5:2: imported and not used: "test/m/lib/div" ./main.go:6:2: imported and not used: "test/m/sum" |
$ go mod init test/m go: creating new go.mod: module test/m go: to add module requirements and sums: go mod tidy $ cat go.mod module test/m go 1.18 |
$ cat main.go package main import ( "fmt" "test/m/lib/div" "test/m/sum" ) func main() { fmt.Println("hello world") } |
$ cat lib/div/div.go package div func div(a float32, b float32) float32 { return a / b } |
$ cat sum/sum.go package sum func sum (a int, b int) int { return a + b } |
'Programming > golang' 카테고리의 다른 글
golang mac address 얻기 (0) | 2022.09.28 |
---|---|
golang method (0) | 2022.09.27 |
golang 함수 인자에 함수 넣기 (0) | 2022.09.27 |
golang package main (0) | 2022.09.23 |
golang REST client (0) | 2022.09.23 |