我曾经在Windows上使用批处理脚本来编译程序,但最近发现了makefile,效率更高。
我的.bat文件中包含以下行,该行在运行时将一些dll复制到当前目录中,并且运行良好。
copy C:\lib\glfw\glfw.dll
Run Code Online (Sandbox Code Playgroud)
我在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
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的完整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) *~
Run Code Online (Sandbox Code Playgroud)
看来您是在不了解的MSYS(或MinGW)环境中运行此文件copy。相反,您可以使用
cp C:\lib\glfw\glfw.dll .
Run Code Online (Sandbox Code Playgroud)
如果要避免使用* nix like cp,则可以使用xcopy以下方法:
xcopy //Y C:\lib\glfw\glfw.dll
Run Code Online (Sandbox Code Playgroud)
请注意必须使用double //来转义/。
或者,您可以在常规MS-DOS环境中运行它,在这种情况下,clean目标将无法工作,因为rm找不到目标,您应该使用del。
使用当前设置,DOS将找不到任何内置命令。请参阅选择外壳以了解如何make确定使用哪个外壳。
| 归档时间: |
|
| 查看次数: |
17370 次 |
| 最近记录: |