我有这个生成文件
# Compiler and flags
CC = g++
CFLAGS = -Iinclude
# Source and object files
SOURCES = $(wildcard src/*.cpp)
OBJS = $(patsubst src/%.cpp,obj/%.o,$(SOURCES))
# Dependency files
DEPS = $(patsubst src/%.cpp,obj/%.d,$(SOURCES))
# Include dependency files
-include $(DEPS)
# Build object files from source files
obj/%.o: src/%.cpp
$(CC) -c -o $@ $< $(CFLAGS)
$(CC) -MM -MT $@ -MF $(patsubst %.o,%.d,$@) $<
# Build library from object files
libui.a: $(OBJS)
ar rcs $@ $^
ranlib $@
copy vui.hpp include/vui.hpp
# Clean object files and library
.PHONY: clean
clean:
del obj\*.o obj\*.d libui.a
这是我的工作区
workspace
├── include
│ ├── UI_Button.hpp
│ ├── UI_CheckBox.hpp
│ ├── UI_Console.hpp
│ ├── UI_ScrollBar.hpp
│ ├── UI_Slider.hpp
│ ├── UI_TextBox.hpp
│ └── vui.hpp
├── src
│ ├── UI_Button.cpp
│ ├── UI_CheckBox.cpp
│ ├── UI_Console.cpp
│ ├── UI_ScrollBar.cpp
│ ├── UI_Slider.cpp
│ └── UI_TextBox.cpp
├── obj
│ ├── UI_Button.o
│ ├── UI_CheckBox.o
│ ├── UI_console.o
│ ├── UI_ScrollBar.o
│ ├── UI_Slider.o
│ └── UI_TextBox.o
├── libui.a
└── Makefile
现在makefile已经构建了所有的东西,我得到了一个错误
copy vui.hpp include/vui.hpp
The system cannot find the file specified.
make: *** [Makefile:24: libui.a] Error 1
当我尝试重做时,我需要删除所有内容,因为它只检查UI_Button.o,并说它是最新的,即使我更改了任何其他.hpp或.cpp文件,它不想重建。有什么方法可以修复这两个错误吗?vui.hpp只包括所有其他头文件。
1条答案
按热度按时间z0qdvdin1#
不确定
copy
或del
是什么,但我假设copy a b
将文件a
复制到b
。不依赖于
vui.hpp
,我也没有看到任何在源根目录中创建vui.hpp
的规则,也没有看到它列在源树中的文件中,所以,根本就没有这样的文件。如果你想继续使用这个命令,不要让它在一个完全不相关的方法中运行,而是要有一个额外的方法: