6

以前はWindowsでバッチスクリプトを使用してプログラムをコンパイルしていましたが、最近、はるかに効率的なmakefileを発見しました。

実行時にいくつかのdllを現在のディレクトリに.batコピーするこの行がファイルにあり、完全に機能しました。

copy C:\lib\glfw\glfw.dll 

私はmakefileで同じ行を試し、別の方法も試しましたが、ファイルが指定した場所にあるcp場合でも、端末はこのエラーを出力します

process_begin: CreateProcess(NULL, copy C:\lib\glfw\glfw.dll, ...) failed
make (e=2): The system cannot find the file specified.
make: *** [core.exe] Error 2

これが私が使用している完全なmakefileです。気をつけてください、コピーラインがないと、それは魅力のように機能します..私は何を間違っているのですか、それともこれは可能ですか?

EXEC = core.exe
OBJS = src/obp.o

CC = g++

CFLAGS  = -W -Wall
LIBS    = -lSOIL -lglew32 -lglfw -lopengl32
LDFLAGS =

$(EXEC): $(OBJS)
    $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
    copy C:\lib\glfw\glfw.dll

clean:
    rm -f $(EXEC) $(OBJS) *~
4

2 に答える 2

5

について知らないMSYS(または) 環境からこれを実行しているようです。代わりに、使用できますMinGWcopy

cp C:\lib\glfw\glfw.dll .

*nix like を避けたい場合は、次のようcpに使用できます。xcopy

xcopy //Y C:\lib\glfw\glfw.dll

//をエスケープするために必要なdouble に注意してください/

MS-DOSまたは、これを通常の環境で実行することもできます。その場合、 が見つからないcleanためターゲットが機能せずrm、 を使用する必要がありますdel

現在の設定では、組み込みDOSコマンドは見つかりません。使用するシェルを決定する方法については、参照するシェルの選択を参照してくださいmake

于 2012-08-01T02:51:52.283 に答える
0

makeが何を望んでいるのかを理解するために、バックスラッシュを 2 つにする必要がある場合があります。

copy c:\\lib\\glfw\\glfw.dll

Make は、ファイル区切り文字が である Unix のバックグラウンドから来ている/ため、Windows 環境で使用するのは少し扱いに​​くい場合があります。

于 2012-08-01T00:34:46.083 に答える