まず
- linux上で実行できるファイルは拡張子なし
- Windows上では拡張子なしのファイルは実行できない
というのをおさえておいて下さい。
次に,各コンパイラで生成されるファイル名は次の通りです。
g++ -o sample sample.cppで生成される実行ファイル
| 環境 | ファイル名 | 
|---|
| wsl(linux) | sample | 
| powershell | sample.exe | 
| mingw64 | sample.exe | 
次に./sampleコマンドで実行されようとするファイルを一覧にしたものです。
powershellは「windowsの実行ファイルは必ずexeとかbatの拡張子がある」
ということを知っているので,自動で拡張子を付け加えます。
git bashは素直に./sampleと拡張子なしのファイルを実行しようとします。
おそらく./sampleの実行ファイルはwsl(linux)環境で生成したファイルなので
windows上では動作しません。(これがエラーの原因)
./sample で実行しようとするファイル
| 環境 | ファイル名 | 
|---|
| wsl(linux) | ./sample | 
| powershell | ./sample.exe | 
| git bash | ./sample | 
最後に各環境で実行可能なファイルです。
実行可能なファイル
| 環境 | ファイル名 | 
|---|
| wsl(linux) | ./sample | 
| powershell | ./sample.exe | 
| git bash | ./sample.exe | 
つまり,git bashでは実行方法は./sample.exeでなければなりません。
ただgit bashでも,もし./sampleが無ければ./sample.exeが実行できていたかもしれません。
この辺りは各々コンパイル・実行後に生成した実行ファイルのファイル名・タイムスタンプ確認&実行ファイル削除をしていたなら自分で解決していたはずです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/06 04:06