※ここで言うビルドイベントとは、例の「ビルドイベント[前|後]のコマンドライン」を指しています。
※bashとはWindows Subsystem for Linux(旧Bash on Ubuntu on Windows)のbashを指しています。
bashだけでなく、64bit向けにビルドされたあらゆるコマンドが使えません。
当たり前ですよね。
Visual StudioのIDEに64bit版なんかないんですから。
bashは64bit版しかないんですから。
呼べるわけないですよね!!!
以上です。
以下タワゴトです。
とあるプログラムの前処理にbash経由でperlを使いたいと思いました。
それを行うバッチを書いて、手動で起動するとばっちりでしたので、ビルドイベント前のコマンドラインとして設定しました。
そしてビルドすると・・・
1> 'bash' は、内部コマンドまたは外部コマンド、と、こういうエラーが吐出されました。
1> 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
面食らった私は以下のように思いました。
- は?
- ないの??
- ないわけないでしょ???
- なんでみえないの????
- タスクスケジューラとかでも使えてるのに?????(←何の関連もない)
そもそも、ここで気づけばよかったんですよね。
エラーメッセージは見えないとかないとか一言も言ってなくて、「認識されていません」ときちんと正しい日本語で教えてくれているのでした。
それを勝手に勘違いしてなぜbashが見えないのだ~~~と悶えた挙句、そういえばIDEって32bit版だったよな~、ということを思い出して(時間経過を無視すれば)あっさり終了。
実行環境とアーキテクチャが違うバイナリ持ってくんなバカ、と叱られていたのにそれに気づけない間抜けさが身に沁みます。
ちなみに、そのバッチ内で
echo %PROCESSOR_ARCHITECTURE%
とやると、キッチリx86と表示されました。当たり前ですが。
(64bit環境下だと環境変数PROCESSOR_ARCHITECTUREにはAMD64が入っています)
あまりの自分のふがいなさに、ちょっと鼻血が出そうになりました。
IDEの前処理欄を使用するといろいろ都合がよかったので、結局perlで書いたスクリプトはcsharpで書き直してしまいました。
当ブログの趣旨に沿った行動ができました。心からハズカシイです。
IDEの前処理欄を使用するといろいろ都合がよかったので、結局perlで書いたスクリプトはcsharpで書き直してしまいました。
当ブログの趣旨に沿った行動ができました。心からハズカシイです。
0 件のコメント:
コメントを投稿