2016-05-10 8 views
-1

を再コンパイルしないfoo.MyNameGolangは、私はちょうどエラーを得たいくつかのファイル

私が最初に理解していないと関数の名前などを変更しようとしました。 My name()という名前の関数を作成しました。私の名前の文字列を返します。

しかし、エラーが再び発生しました。時間、私はちょうどパッケージfooの私のコードのすべてをコメントしようとした!私はこの時点でf ** kと言いたかったのですが... #PS:私はserver.goにコメントします:73行..そして..それはコンパイルして完全に動作しますか?

私のコードにコメントしましたが、まだここにいるようですか?だから今私の質問は:

いくつかのファイルを再コンパイルするいくつかの問題がありますか?

-------------------------------------

ワークスペース

pkg 

    linux_amd64 

src 

    algo database_sql github.com golang.org GoogleAPI googlemaps.github.io main main.go models myDebug router server 
私は

は、私はまた、任意の解決策を見つけることなく、How to Write Go Codeを読んで "main.goを構築して行く" 作ってるんだ

...

いくつかのヒントが?ありがとう!

+7

質問を更新して問題を再現するための最小限のコードを投稿してください...そうでなければ、推測するのが難しい –

+0

go build filename.goはそのファイルを1つしか作成せず、他のファイル。通常は、プロジェクトディレクトリから "go install"して、 "just work(tm)"して$ GOPATH/binにインストールしたいだけです。しかし、あなたが実際にファイルのセットを構築したい場合は、go build * .goのようにコマンドラインでそれらの全てをリストアップしてください(しかし、これはやりがいの悪い習慣です) –

+0

私はあなたと大丈夫ですか?David私は "main.goをビルド"して、このファイルでは、私はalgoのようなインポートを追加しました。両方をコンパイルします。私はgolangを使用してから始めました。 – Emixam23

答えて

2

だから私はあなたの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 buildpkgのライブラリの既にコンパイルされたバージョンを使用しているので、問題を解決したい場合はサーバファイルのgo installまたはメインフォルダのgo install ./...を実行してください。

これはGoでのエラーではありません。通常、ライブラリのコードを変更する必要はないため、コードを試す前に新しいバージョンのライブラリをインストールする必要があります。

+0

ありがとうございます:)私はコードを書いていませんでした。なぜなら、コードに関するものではないからです。私は自分のコードにコメントして、まだxをコンパイルしているからです。あなたが説明したように、あるいはゴランが一時的なファイルを生成したために、いくつかのファイルが適切な場所にないからです。 – Emixam23

+1

@MaximeGuittet私はあなたの問題を解決すると思います。私はその記事を編集した。 – Topo

+0

私は後でそれを読むよ、ありがとう:) – Emixam23

関連する問題