ライブラリとコマンドライン インターフェイス (CLI) の両方を必要とする Go プロジェクトでは、この問題がよく発生します。同じディレクトリに複数のパッケージがあること。
そのようなプロジェクト構造の 1 つ:
whatever.io/ myproject/ main.go myproject.go
package main と func main は Go で実行を開始するために不可欠ですが、ライブラリには package myproject などの別個のパッケージが必要です。ただし、このプロジェクトをインポートするときに、Go コンパイラーが次のことを拒否する可能性があります:
main.go:5:2: found packages myproject (myproject.go) and main (main.go) in $GOPATH/src/whatever.io/myproject
この問題を解決するには、メインと同じディレクトリ内の新しいフォルダー内に両方のパッケージを配置します。 。行く。 $GOPATH から新しいパッケージを参照するようにインポート ステートメントを更新することを忘れないでください。
例:
whatever.io/ myproject/ library/ myproject.go main.go
main.go で、次のようにライブラリ パッケージをインポートします:
import "../library/myproject"
このアプローチでは、ライブラリと CLI を明確に分離しながら、両方を同じ内に常駐させることができます。
以上が同じディレクトリ内にライブラリと CLI の両方を含む Go プロジェクトを編成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。