我曾经在 Windows 上使用批处理脚本来编译程序,但最近我发现 makefile 效率更高。
我的里面有这条线.bat
复制一些dll的文件to运行时的当前目录并且运行良好。
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) *~
看起来您正在从MSYS
(or MinGW
)环境,不知道copy
。相反,您可以使用
cp C:\lib\glfw\glfw.dll .
如果你想避免 *nix 之类的cp
,那么你可以使用xcopy
如下:
xcopy //Y C:\lib\glfw\glfw.dll
注意双//
这是逃脱所需要的/
.
或者你可以定期运行它MS-DOS
环境,在这种情况下你的clean
目标不起作用,因为rm
不会被发现,你应该使用del
.
根据您当前的设置,任何内置DOS
将找不到命令。看选择外壳 http://www.gnu.org/software/make/manual/html_node/Choosing-the-Shell.html阅读有关如何make
确定使用哪个 shell。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)