読者です 読者をやめる 読者になる 読者になる

ami_GS's diary

情報系大学院生の備忘録。ネットワークの勉強にハマっています。

Golangで自作パッケージをimportする方法メモ

Golang

はじめに

こんにちは、最近Go言語を始めました。
ビルドの際に自作パッケージの読み込みで詰まったので、そこについてのメモです。

さくっと

mainパッケージ
A.go(仮)としましょう

package main

import (
        "fmt"
        "mypackage"
)

func main() {
        fmt.Println(mypackage.Hoge())
}

mypackageパッケージ
B.go(仮)としましょう

package mypackage

func Hoge() int {
        return 100
}

ここで、

>> go build A.go

とすると、以下の様な出力が出ると思います。

>> A.go:5:2 cannot find package "mypackage" in any of:
            /usr/local/.........../src/mypackage   (from $GOROOT)
            /Users/fugafuga/....../src/mypackage  (from $GOPATH)

出力を読むと、
GOROOTもしくはGOPATHに通っているパスの、src/package/ 以下にB.goを置くと動きそうです。
なので

>> pwd
>> /Users/NAME/workspace
>> mkdir -p src/myworkspace #パッケージ名と同じディレクトリ名にするのがお決まりらしい
>> mv B.go src/myworkspace/B.go
>> export GOPATH=/Users/Name/workspace/:$GOPATH
>> go build A.go
>> ./A
>> 100

GOPATHの設定として行儀の良い物なのかはまだわかりませんが、動かし方ということで良しとしましょう!!(ブッチャケ)
これで、「A」と名のついたバイナリが出来るたとおもいます!!

お後がよろしいようで。