在运行时使用 makefile 复制文件

2024-01-03

我曾经在 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(使用前将#替换为@)

在运行时使用 makefile 复制文件 的相关文章

随机推荐