[解決済み] 複数のファイルからなるGoプログラムをコンパイルするには?
2022-11-16 13:26:43
質問
3つのファイルからなる小さなプログラムを持っていますが、すべて同じパッケージ(main)に属しています。しかし、私が
go build main.go
を実行すると、ビルドが成功しません。1つのファイルだけだったときは (
main.go
) のときは、すべてうまくいきました。
今、私はコードを分離するためにいくらかの努力をしましたが、コンパイラーは
main.go
から取り出され、これら 2 つの別のファイル (main.go と同じディレクトリに存在する) に入れられたものを、コンパイラーは見つけることができないようです。その結果
undefined 'type'
のエラーになります。
複数のファイルで構成されるこのプログラムをどのようにコンパイルすればよいのでしょうか。
どのように解決するのですか?
新しい方法 ( おすすめ ):
古い方法です。
myprogというプログラムを書いているとします。
すべてのファイルをこのようなディレクトリに置きます
myproject/go/src/myprog/xxx.go
次に
myproject/go
をGOPATHに追加します。
そして実行
go install myprog
こうすることで、必要であればmyproject/go/srcに他のパッケージやプログラムを追加することができるようになります。
参照: http://golang.org/doc/code.html
(このドキュメントは常に新規参入者に見逃され、しばしば最初は理解されません。Go チームが最も注意を払うべきものです (IMO)。
関連
-
[解決済み] Goでマップにキーが含まれているかどうかを確認するには?
-
[解決済み] 複数のnpmスクリプトを並列に実行するにはどうしたらいいですか?
-
[解決済み] なぜこのプログラムは3つのC++コンパイラで誤って拒否されるのですか?
-
[解決済み] response.Bodyを閉じないとどうなりますか?
-
[解決済み] スライスを宣言するのか、スライスを作るのか?
-
[解決済み] スライスを格納する interface{} 上の範囲
-
[解決済み] テキストファイルを文字列配列に読み込む(そして書き込む)
-
[解決済み] テンプレートでマップを繰り返し処理する
-
[解決済み] Go で子プロセスの標準出力パイプをリダイレクトする
-
[解決済み] bytes.Buffer does not implement io.Writer" というエラーメッセージが表示される。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] メインパッケージに複数のファイルがあるプロジェクトを「go run」するにはどうしたらいいですか?
-
[解決済み] intをint64に変換するには?
-
[解決済み] reflectを使用して、構造体フィールドの値を設定するにはどうすればよいですか?
-
[解決済み] GoのToString()関数
-
[解決済み] Goで関数の名前を取得するには?
-
[解決済み] os.Exit()とpanic()はいつ使うのか?
-
[解決済み] スライスを変数入力として渡すには?
-
[解決済み] bytes.Buffer does not implement io.Writer" というエラーメッセージが表示される。
-
[解決済み] 文字列を小文字に変換する方法を教えてください。
-
[解決済み] マップを含む値を順番に収集する