30

Windows でメイクファイルを使用して、いくつかのファイルを Unix サーバーにプッシュしています (ここでは、メイクファイルと同じフォルダーにあるテキスト ファイル "blob.txt")。私のmakefileスクリプトは次のとおりです。

setup:
        pscp blob.txt username@hostname:/folder/

コマンド プロンプトを起動し、blob.txt と makefile が存在するフォルダーに移動して、次のように入力します。

make setup

結果は次のとおりです。

pscp blob.txt username@hostname:/folder/
process_begin: CreateProcess(NULL, pscp blob.txt username@hostname:/folder/, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [setup] Error 2

#fail ... コマンドプロンプトでコマンドを直接入力すると、次のようになります。

pscp blob.txt username@hostname:/folder/

それは機能します...なぜだろうと本当に思います。

4

9 に答える 9

19

エラー

process_begin: CreateProcess(NULL, pscp blob.txt username@hostname:/folder/, ...) failed.
make (e=2): The system cannot find the file specified.

ほぼ確実に、Windows が を見つけられないと不平を言っていますpscp

これはほぼ確実に、make がシェル/コンソールを生成するときと手動で開いたときの値%PATH%異なるためです。

値を比較して確認します。次にpscp、makefile レシピで へのフル パスを使用するか、 の使用法に対して の値がPATH正しく設定されていることを確認しmakeます。

于 2015-11-12T15:30:23.797 に答える
12

私はこれが答えられた古い質問であることを知っていますが、まだこれに遭遇している人のために私と私の経験を考えました。私は同じ不可解なエラー大佐 Beauvel を取得していました (pscp ではなく Windows MOVE コマンドで):

process_begin: CreateProcess(NULL, move /y foo\bar.c .\baz.c, ...) failed.
make (e=2): The system cannot find the file specified.

私たちの CI は同じ Makefile を実行しており、完全に機能していました。CI は mingw32-make を使用し、私は GNU make を使用していたことがわかりました。GNU make (無関係な一括パッケージの一部としてインストールされたもの) をアンインストールし、mingw32-make を「make」にエイリアスすることは完全に機能します。

于 2018-05-03T10:26:19.953 に答える
8

@ user3869623 のソリューションは私にとってはうまくいきます。写真を完成させるために、私の詳細をいくつか共有したいと思います。

私のmakefileには以下のターゲットが含まれています:

clean:
    @echo '$(OS)'
ifeq ($(OS),Windows_NT)
    del /s *.o *.d *.elf *.map *.log
endif

を実行するmake cleanと、次のエラーが表示されます。

ここに画像の説明を入力

で問題が発生したと表示されているechoため、makefile のターゲットを以下に変更します。

clean:

ifeq ($(OS),Windows_NT)
    del /s *.o *.d *.elf *.map *.log
endif

今回は、次のmake cleanエラーが表示されます。

ここに画像の説明を入力

私はbashWindows のコマンド ラインで作業しているので、ここを見て驚いています。

次に%PATH%、 を確認すると、次のエントリが表示されます。

C:\DevTools\Git\bin

そのパスにはbash.exeandがあります。sh.exeそのため、このエントリを削除しましたが、現在は正常に動作しています。

しかし、なぜBASHがこれに入るのかわからない???

追加 1

C:\DevTools\Git\binに表示される理由については、%PATH%Sublime を使用していて、常に Git バイナリを要求されるためです。

ここに画像の説明を入力

于 2016-08-23T03:12:36.693 に答える