Makefile
Makefile is used to tell the compiler how to compile and link the source file.
structure
Makefile is organized by some rules:
target:prerequisites
commands
target stands for a object file or a exxcutable file,sometime it just stands for label.
prerequisites stand for the files that used to produce the target
commands stand for shell commands
this rule is used to describe the dependency relation between target and prerequisites.for example,if everything in prerequisites is is not modified,when you execute the make command,nothing happened.if some files in prerequisites are modified lately,when you execute the make command.the modified files will be compiled agian,then linked.
ob1.o:ob1.c ob1.h
g++ -c ob1.c
ob2.o:ob2.c ob2.h
g++ -c ob2.c
ob3.o:ob3.c ob3.h
g++ -c ob3.c
main:ob1.o ob2.o ob3.o
g++ -o main ob1.o ob2.o ob3.o
the symbol in Makefile
$@ : the target
$^ : the prerequisites
$< : the first file in prerequisites
/ : line feed
so when you see Makefile lines like:
main: ob1.o ob2.o ob3.o
g++ -o @^
it’s means that the compiler linked all the object files to produce a executable file named main.
introduce to g++
options
-c : produce a object file
-Idir :inlcude head dir,the compiler is going to find the head file in the path you select,if not find ,the compiler will find the head file in a system default path.
-Ldir:the options tell the compiler where to find the libary that used to compiler the source.
-llibrary: the library that used to compile.
-Wall : tell the compiler to output all the warning message
-w : tell the compiler to close all the warning message
-Dmacro=defn :define a macro
-ON,N=0,1,2,3 when you need debug the source code,you need to disable the compiler’s optimization function by adding a option -O0,actully ,there is four level optimization option -O0,1,2,3,-O0 tell the compiler disable the optimization function ,and the -ON,N=1,2,3 tell the comipler optimize even more.
-g this flag tells comipler to keep the debug infomation.it’s necessary for the debug step.
本文详细介绍了Makefile的基本结构及使用方法,并深入探讨了g++编译器的各种选项,帮助读者理解如何通过Makefile自动化编译过程以及如何利用g++进行高效的源代码编译。
13万+

被折叠的 条评论
为什么被折叠?



