go build のコンパイル対象

  • 0
    いいね
  • 0
    コメント

    コンパイル対象

    • 使われる(importされる)子だけコンパイルされる

    ディレクトリ構成確認

    $ tree
    sample.com
    ├── config
    │   └── config.yaml #外部ファイル
    ├── imports
    │   └── import.go   #main.goでimportされる子
    ├── main.go
    ├── foo
    │   └── foo.go      #使われない子
    └── hoge.go         #使われない子
    
    main.go
    package main
    
    import (
        "fmt"
    
        "sample.com/imports"
    )
    
    func main() {
        fmt.Print("main::main()\n")
        imports.Import()
    }
    

    バイナリファイルの中身を確認

    # hoge.go/foo.goがいない
    $ docker-compose exec golang strings compiled | grep "sample.com"
    sample.com/imports.Import
    sample.com/imports.init
    /go/src/sample.com/main.go
    /go/src/sample.com/imports/import.go
    /go/src/sample.com/imports/import.go
    /go/src/sample.com/main.go
    sample.com/imports.statictmp_0
    sample.com/imports.initdone
    /go/src/sample.com
    sample.com/imports.Import
    sample.com/imports.init
    sample.com/imports.statictmp_0
    sample.com/imports.initdone
    sample.com/imports.statictmp_0
    sample.com/imports.initdone.
    sample.com/imports.Import
    sample.com/imports.init