2012-05-15 19 views
11

パッケージを別のパッケージからインポートできるようにする必要がありますか?私のパッケージを見つけるにはどうすればいいですか?

$ tree 
. 
├── main.go 
└── src 
    └── test.go 

1 directory, 2 files 

$ cat src/test.go 
package test 

$ cat main.go 
package main 

import "test" 

$ go build main.go 
main.go:3:8: import "test": cannot find package 
+0

GOPATHの値は何ですか? –

+0

GOPATHが設定されていません。 –

答えて

8

GOPATHを設定します。あなたが明示的にFOOをインストールしない必要性を行う

import "optional-whatever/foo" 

ようなコードでそれを行って、使用しています。*/GOPATH/SRC /オプション - 何/ fooの中で、あなたのパッケージfooのソース(複数可)を入れ、GOツールビルドツールですが、必要に応じて自動的に実行されます。

+2

明確にする:パッケージはディレクトリ(例: 'foo')になります。個々のソースファイルではなく、モジュールとしてフォルダをインポートします。 – VOIDHand

8

起こる必要があることがいくつかあります。あなたは、まず、「テスト」のパッケージをインストールする必要があります。PKGを作成する必要はありません

$ export GOPATH=$(pwd) # Assumes a bourne shell (not csh) 
$ mkdir src/test 
$ mv src/test.go src/test/test.go 
$ mkdir pkg     # go install will put packages here 
$ go install test   # build the package and put it in $GOPATH/pkg 
$ go build main.go 

。なお、go installはあなたのためにそれを行うだろうと。 テストパッケージをインストールしたら(go build main.go)、異なるエラーが表示されるようになりました。(例: "imported and not used")

+0

私は、ウィリアムに感謝します。 –

+0

これまでの初心者のための最もきれいな説明。 – gmile

-4

多分、あなたはmain.goと同じディレクトリにtest.goファイルを置いて、test.goで ことができ、それはこのようなものを使用しています。

import "./test" 
関連する問題