GNU make 简单使用示例

要求:编写Makefile对两个.cpp文件进行编译链接生成可执行文件main,cpp文件可见下面链接:

https://blog.csdn.net/Reading8/article/details/132630694icon-default.png?t=N7T8https://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

猜你喜欢

转载自blog.csdn.net/Reading8/article/details/132631057