だから私はあなたのdevのツリーが見えると、このような何かを推測している:あなたがHow to Write Go Codeで見ることができるように、あなたはあなたのプロジェクトのフォルダを持っていることになっているので、main.goはsomeproject/main.go
あるべき
src
├───algo
├───database_sql
├───github.com
├───golang.org
├───GoogleAPI
├───googlemaps.github.io
├───main
├───main.go
├───models
├───myDebug
├───router
└───server
└───server.go
をgo build
を使ってプロジェクト全体を構築することができます。
github.com/yourname/projectname
のように、すべてのプロジェクトを自分のWebアドレスのフォルダに収めたいと思うのが理想的です。特定のプロジェクトに一般にアクセスできない場合でも、この規約に従うことをお勧めします。私はgithub/my user
フォルダにすべてのプロジェクト(githubにないものさえも)を保持します。これにより、すべてのソフトウェアを簡単に見つけて分類することができます。
プロジェクトとそれのすべてを構築したい場合は、あなたが行うことができます(この場合はサーバ/ server.goに)依存関係をだgo build ./...
ます。また、サーバーのパッケージに移動して、ビルドをインストールするgo install
を行うと、再インストールすることができますその包み。
ですから、このようなものが必要です:
GOPATH
├───bin
| └───main (this will have the name of the folder)
├───pkg (this routes match the ones on src)
| └───linux_amd64
| └───server.a
└───src
├───algo
├───database_sql
├───github.com
├───golang.org
├───GoogleAPI
├───googlemaps.github.io
├───main
| └───main.go
├───models
├───myDebug
├───router
└───server
└───server.go
をそしてsrc/main/
に移動し、すべての依存関係を構築するためにgo build ./...
を行います。理想的にはgo install ./...
を実行して、ライブラリが正しいパスにインストールされ、バイナリも正しいパスに作成され、src
フォルダには作成されないようにすることが望ましいでしょう。これを行う場合は、バイナリbin/main
を実行する必要があります。 GOPATH/bin
をパスに追加して、ソフトウェアをインストールしてbinフォルダに移動せずに実行できるようにすることをお勧めします。
おそらく、サーバーパッケージをインポートまたは使用する方法に多少の誤差があります。これはあなたのコードを投稿しないとできます。
編集:これについてさらに考えた後、私はエラーを発見したと考えます。 go build
を実行してプロジェクト全体を構築していましたが、ある時点でサーバーライブラリのgo install
を実行しました。だから今go build
はpkg
のライブラリの既にコンパイルされたバージョンを使用しているので、問題を解決したい場合はサーバファイルのgo install
またはメインフォルダのgo install ./...
を実行してください。
これはGoでのエラーではありません。通常、ライブラリのコードを変更する必要はないため、コードを試す前に新しいバージョンのライブラリをインストールする必要があります。
質問を更新して問題を再現するための最小限のコードを投稿してください...そうでなければ、推測するのが難しい –
go build filename.goはそのファイルを1つしか作成せず、他のファイル。通常は、プロジェクトディレクトリから "go install"して、 "just work(tm)"して$ GOPATH/binにインストールしたいだけです。しかし、あなたが実際にファイルのセットを構築したい場合は、go build * .goのようにコマンドラインでそれらの全てをリストアップしてください(しかし、これはやりがいの悪い習慣です) –
私はあなたと大丈夫ですか?David私は "main.goをビルド"して、このファイルでは、私はalgoのようなインポートを追加しました。両方をコンパイルします。私はgolangを使用してから始めました。 – Emixam23