2016-04-05 17 views
0

私は私のような構造を持っているプログラムを記述しようとしています:ゴーカスタムパッケージのインポートエラー

Go/src/ 
    -github.com 
    -myname 
     -hello 
      main.go 
      -vector 
       vector.go 

私のようなコマンドを使用してmain.goファイルの内部の私のコードでパッケージをインポートする場合:

import(
    "vector" 
) 

私は、エラーメッセージが表示されます。

Can't find package "vector" in any of: 
    C:\Go\src\vendor\vector (vendor tree) 
    C:\Go\src\vertex (from $GOROOT) 
    C:\Go\src\github.com\myname\src\vertex (from $GOPATH) 

は、なぜそれがを追加しています3210最後の行に? srcをhelloフォルダに置き換えてはいけません。なぜなら、そこからファイルを実行しているからです。また、それは私に奇妙に見えるgithub.com/myname/hello/vertexのような完全なファイル構造からインポートすると実行されます。

私はプログラムとのやりとりを簡単にするためにgo run hello.goを使用して実行しています。 、そして常にフルインポートパスを使用するためにそれが始まるあなたのケースでは、標準です:(Iが最初に言ったように、ない$GOROOT!編集)

答えて

3

あなたのゴーコード(のSTDLIBを行くとは対照的に)$GOPATH/src下であることを意味しますgithub.com/(たとえあなたがしなければならない方法を見つけたとしても)。

GoチームのHow to Write Go Codeには他にも、project layoutthe first steps to setting a workspace upという回答があります。

+0

私が正しく理解していれば、私の個人的なコードは '$ GOROOT/src'に入っていますが、他の人のコードからリポジトリをインポートすると、' $ GOROOT/src/github.com/username/reponame'フォルダ? – Rob

+1

ユーザーのコードは、$ GOPOO [/ src]ではなく、$ GOPATH [/ src]の下にあるはずです。 – cd1

+0

@ cd1 ugh、非常に申し訳ありませんが、 – twotwotwo

関連する問題