193

Go でカスタム パッケージを作成して使用しようとしています。それはおそらく非常に明白なことですが、これに関する多くの情報を見つけることができません。基本的に、同じフォルダーに次の 2 つのファイルがあります。

mylib.go

package mylib

type SomeType struct {

}

main.go

package main

import (
    "mylib"
)

func main() {

}

しようとするとgo run main.go、次のエラーが表示されます。

main.go:4:2: import "mylib": cannot find package

最初に実行しようとしましたgo build mylib.goが、何もしていないようです (ファイルが生成されず、エラー メッセージも表示されません)。どうすればこれを行うことができるのでしょうか?

4

8 に答える 8

183

まず、 「Go コードの書き方」ドキュメントを必ず読んで理解してください。

実際の答えは、「カスタム パッケージ」の性質によって異なります。

一般的な使用を意図している場合は、いわゆる「Github コード レイアウト」の採用を検討してください。基本的に、ライブラリを別のgo get-table プロジェクトにします。

ライブラリが内部で使用される場合は、次のようになります。

  1. プロジェクトのディレクトリの下に、ライブラリ ファイルを含むディレクトリを配置します。
  2. プロジェクトの残りの部分では、プロジェクトを含むワークスペースのルートに相対的なパスを使用してライブラリを参照します。

デモンストレーションするには:

src/
  myproject/
    mylib/
      mylib.go
      ...
    main.go

これで、トップレベルmain.goで、import "myproject/mylib"問題なく動作します。

于 2013-02-24T11:14:18.573 に答える
72

この種のフォルダー構造の場合:

main.go
mylib/
  mylib.go

最も簡単な方法は、これを使用することです。

import (
    "./mylib"
)
于 2013-08-13T05:27:37.790 に答える
2

別の解決策: $GOPATH
に追加します。src/myproject

その後import "mylib"、コンパイルします。

于 2014-07-22T16:14:35.473 に答える