是否有人拥有可以执行以下操作的完整makefile:
我已经看到了有关如何使make工具找出标头依赖关系的说明,但这些指令都没有提供与工作示例类似的任何内容。一个简单的例子如下:main.cpp C1.cpp C1.h C2.cpp C2.h
答案 0 :(得分:5)
CXX = g++
OBJECTS := main.o C1.o C2.o
all: $(OBJECTS)
%.o : %.cpp
$(CXX) $(CPPFLAGS) -Wall -MMD -c $< -o $@
-include *.d
编辑:正如TobySpeight所指出的,如果你构建一个目标文件,重命名或删除一个必备的源文件或头文件,然后尝试重建目标文件,这将不起作用; .d
文件仍然需要丢失的文件,构建将失败。我忽略了包括处理这种情况的线:
%.h: ;
%.cpp: ;
(这是有效的,但很粗糙。更精确的方法是在%.o
规则中放入一些sed命令,以便为.d
文件添加特定的空规则,每个先决条件一个,但是sed命令很难看,上面的方法几乎适用于所有情况。)
答案 1 :(得分:0)
您也可以使用CMake。你需要写的所有东西都是:
add_executable (exec main.cpp C1.cpp C2.cpp)