2017-12-13 21 views
-6

コマンドプロンプトでプログラムを実行しようとしました#Go lang-しかし、「hello.goを実行してください」というコマンドを入力するとgettinです`hello.go`を実行しても「hello.go」が見つかりません

のCreateFile hello.go:システムファイルが

を指定見つけることができないあなたは、実行中の出力からわかるように、上記のマークされたプログラムをコンパイルして実行するのに役立ち、事前

+0

スクリーンショットへのリンクを投稿しないようにしてください。それらにテキストが含まれている間、このテキストはインターネット検索エンジンによって索引付けされません。 Windowsコンソールはコピーと貼り付けをサポートしています。デフォルト設定では、マウスの右ボタンを使用して選択モードに入り、選択が完了したらEnterキーを押して、選択したテキストをクリップボードにコピーします。あなたはそれをあなたの質問に貼り付けることができます(そしてそれをコードとしてフォーマットします)。 – kostix

+0

適切に役立つ情報の追加 –

答えて

2

に感謝して下さいdirコマンド あなたのシェルで以前に起動する実際には、C:\GOCODE\testprojectディレクトリに「hello.go」というファイルがありません。 はありません。

あなたは

go run hello.go 

コマンドを実行すると、そのファイルの名前が相対的であるため、goツールは、(現在の ディレクトリに「hello.go」という名前のファイルを見つけようと、それは されています現在の作業ディレクトリで検索されます)。そのようなファイルはありません。 とそれがgo runに表示されます。


残念ながら、あなたのシェルセッションの見通しから、あなたのセットアップに多くの問題がある 表示されます。 そして、Goへのアプローチに問題があります。あなたが this guideをフォローしているユーザー(これは実際には、行うには正しいこと である)のように見えながら

まず、あなたはそれを読み違えます。それはあなたを教えしようとした何

は、あなたが「SRC」 ディレクトリ(その後、「こんにちは」ディレクトリテストプロジェクトを含むように)、いわゆるワークスペース内 、をし、ワークスペースのリストを作成しなければならないことですGo には、GOPATH環境変数に格納されています。

あなたはgo env出力からわかるように、移動はあなたがC:\Users\Sitaram\Goに位置する単一 のワークスペースを持っていると考えています。

多くの(そうでなくても)多くの "主流"の言語に反して、それを繰り返す価値があります。 言語--Goは "プロジェクトベース"ではありません。その代わりに、すべてのコード をこれらのワークスペースに編成する必要があり、これらのワークスペースがどこにあるのかを知りたいと考えています。 デフォルトでは、 環境変数を明示的に設定しなかった場合、-itは、あなたの単一のワークスペースが "ホームフォルダ"に配置された "go"という名前のディレクトリ にあるとみなします。 これは出力のgo envに表示されます。 GOPATH ENVを設定

  • は今、あなたは、2つのオプションがあります。変数をC:\GOCODE に変更し、別のシェルを起動して、その変数を "見て" goツールも参照して使用できるようにします)。 GOPATHC:\GOCODEが含まれていることを確認するためにgo envを実行してください。

    はその後、チュートリアルドキュメントの残りの部分に従います。

    1. C:\GOCODEの下に直接「SRC」フォルダがあることを確認してください。
    2. "src"の下にプロジェクトフォルダディレクトリを作成します。 「hello」という名前になっています。
    3. "hello"の下に "hello.go"ファイルを作成します。
    4. cd C:\GOCODE\src\hello、次にgo build - のhello.exeが作成されます。
  • GOPATHを台無しにしないでくださいとだけデフォルトで 上から2-4の手順を繰り返しC:\Users\Sitaram\goをworkspace-。

ランダム 個人データとC:\を汚染するため、特定のWindowsユーザーの不可解な愛情 が本当にアンチパターンであるので、私は第二の変形例で行くと思います。あなたの家にあなたの個人的な持ち物を持ってください フォルダー! Windowsはそれほど長い道のりを歩んできました。ほぼすべて Windowsソフトウェアが最終的にそこにあるというパラダイムを理解しています。だからなぜ逸脱するのだろう?

第2に、をお送りくださいgo runです。 Goデベロッパーが実際に実装したことを後悔しているのはわかりませんが、 人は本当にこのツールの目的を誤解しています。 これは、一回限りの「スクリプト」のためのものです。 実際の開発はgo installと、時にはgo buildを使用して行われます。

通常の開発ルーチンでは、go install を排他的に使用します。すべてのパッケージのコンパイル結果をキャッシュするため、プロジェクトに依存します。 go buildはこれを行いません。go runは であり、プロジェクト自体のコンパイル結果は保持されません。 詳細については、thisクイックリファレンスカードをお読みください。

関連する問題