要求:编写Makefile对两个.cpp文件进行编译链接生成可执行文件main,cpp文件可见下面链接:
https://blog.csdn.net/Reading8/article/details/132630694https://blog.csdn.net/Reading8/article/details/132630694对此示例进行编译链接生成可执行文件有两种方法。
一种是命令行的方式
(base) ganning@ganning:~/Xproject/makefilesteel$ g++ main.cpp myfunctions.cpp -o main
(base) ganning@ganning:~/Xproject/makefilesteel$ ls
main main.cpp myfunctions.cpp myfunctions.h
(base) ganning@ganning:~/Xproject/makefilesteel$ ./main
Hello world!
另一种为编写Makefile的方式
main: main.o myfunctions.o
g++ main.o myfunctions.o -o main
main.o: main.cpp
g++ -c main.cpp
myfunctions.o: myfunctions.cpp myfunctions.h
g++ -c myfunctions.cpp
clean:
rm *.o
注意 < g++ -c main.cpp >中-c 表示不生成可执行文件,<rm *.o>表示删除所有.o后缀文件,可使用make clean来调用此操作,可以看出Makefile文件基本编写规范为
target: materials
Operation
结果验证
(base) ganning@ganning:~/Xproject/makefilesteel$ make
g++ -c main.cpp
g++ -c myfunctions.cpp
g++ main.o myfunctions.o -o main
(base) ganning@ganning:~/Xproject/makefilesteel$ ls
main main.cpp main.o Makefile myfunctions.cpp myfunctions.h myfunctions.o
(base) ganning@ganning:~/Xproject/makefilesteel$ ./main
Hello world!
(base) ganning@ganning:~/Xproject/makefilesteel$ make clean
rm *.o
(base) ganning@ganning:~/Xproject/makefilesteel$ ls
main main.cpp Makefile myfunctions.cpp myfunctions.h