Linux编译c++/c 一般都是用g++或者gcc编译器,相比window下集成好的工具,gcc们需要自己手动编译软件,所以我们利用makefile来帮助我们编译。
下面我们来编译一下最简单的helloworld

helloworld:
	g++ helloworld.cpp -o helloworld

完整代码见:https://github.com/xiaoxiaodaining/simple-to-makefile
在终端直接输入make,就会自动编译
如果make不能识别直接安装下make模块就好了
上面代码可以看成

target: 
	[tap] system command1
	[tap] system command2
	...

target:表示目标
tap: 表示命令前要有个tap空格(没有tab空格,makefile不能识别是命令)
system command:表示系统命令
我们是使用makefile就是为了简化编译过程,现在我们可以利用make多次编译,当我们遇到多文件时,一个文件改动可能上面的编译方式就要全部重来一次,所以我们使用增量编译,我们看例子二:


helloworld: main.o other.o
	g++ main.o other.o -o helloworld
main.o: main.cpp  other.h
	g++ -c main.cpp -o main.o 
other.o: other.cpp other.h
	g++ -c other.cpp -o other.o
clean:
	rm *.o helloworld

完整代码见:https://github.com/xiaoxiaodaining/simple-to-makefile
makefile 根据文件时间来编译代码,所以使用增量编译后我们改哪边的代码,他就去编译哪边,减少了重复编译的时间,这边可以看到有好多target(目标), make命令默认编译第一个target,比如我们像运行clean这个target, 我们使用 make clean这个命令就行了。

Logo

更多推荐