/tmp/go-build069786374/b001/exe/a.outをコピーするGolangコンパイルエラー:そのようなファイルまたはディレクトリソリューションはありません

問題: /tmp/go-build069786374/b001/exe/a.outをコピーするLinux仮想マシンでのGolangコンパイルエラー:そのようなファイルまたはディレクトリはありません

理由: WindowsとLinux仮想マシン共有ディレクトリが不安定です。

解決策: Linux仮想マシンを再起動し、ディレクトリを再共有してコンパイルして渡します

詳細なプロセスは次のとおりです。

今日、buildコマンドのソースファイルmain.goが生成されたときに、エラーが報告されました。

go build command-line-arguments: copying /tmp/go-build042781492/b001/exe/a.out: open main: text file busy

ビルドが完了した後、コンパイルされたファイルが以前に生成された実行可能ファイルmainで上書きされると、メインファイルが占有され、解放されておらず、上書きできないことがわかります。

メインを実行してからコードを変更したため、再構築中に問題が発生しました。論理的に言えば、仮想マシンとフォームで実行されている共有フォルダーLinuxを使用したため、この問題は発生しないはずです。以前はこのファイルシステムによって、この事故の可能性も問題です。

最初にWindowsでテストします。

package main

import (
    "fmt"
    "time"
)

func main() {
    time.Sleep(30*time.Second)
    fmt.Println("2")
}

テストするのは、実行可能ファイルが実行されているときに、コードを変更して、正常にコンパイルできるかどうかを確認し、元の実行可能ファイルを上書きすることです。

go build main.go

main.exeファイルを実行します

コードを変更しますfmt.Println( "3")

新しいウィンドウはmain.goをビルドします

コンパイルが成功したことがわかりました。エラーは報告されていません。main.exeを実行してください。

その結果、最初の出力は2、2番目の出力は3になり、正常であることがわかります。

そこで、Linuxに戻り、共有ディレクトリの外にテストコードを作成しました。共有ディレクトリは/ data / www /です。

cd /data
mkdir test
cd test
go mod init test
vi main.go

上記のテストコードを入力してください

同じテスト手順を実行すると、正常であることがわかります。この理由は、仮想マシンの共有ディレクトリが原因であると思われます。

 

 

おすすめ

転載: blog.csdn.net/whatday/article/details/114842628