这是我第一次尝试从previous post开始尝试使用Makefile。
无论如何这里是代码
SortLab.exe : SelectionSort.o Main.o
g++ -o $@ $^
SelectionSort.o : SelectionSort.cpp SelectionSort.h
Main.o : Main.cpp
#-------------------------------------------------------------
run: SortLab.exe
./SortLab.exe
clean:
rm -f *.o
rm -f *.exe
build: clean SortLab.exe
%.o: %.cpp
g++ -c $<
我打算SelectionSort.cpp
&amp; SelectionSort.h
形成一个目标文件,Main.cpp
形成自己的目标文件。最后创建一个可执行文件。 Main.cpp
取决于SelectionSort.cpp
,哪里出错了?
我在哪里可以找到不同GNU
命令的含义,-o
-c
等等
答案 0 :(得分:2)
%.o: %.cpp
规则,Make知道如何编译C ++。Main.o : Main.cpp SelectionSort.h
。build
不应该依赖于clean
,它会破坏Make的主要功能之一(当文件发生变化时有选择地重新编译)。build
成为第一个目标,则可以运行Make without a target来获得完整编译。按惯例调用主目标all
。