码迷,mamicode.com
首页 > 其他好文 > 详细

makefile入门-初步了解

时间:2019-01-05 19:48:03      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:工程   复杂   UNC   ++   源文件   自己   info   src   ima   

自己开始学习makefile是由于VScode配置工程文件,看别人的配置不是很懂,于是决定入门学习下makefile。

先来说说makefile是做什么用的:对于只有一个或两三个源文件的程序,我们可以直接用g++ 命令进行编译链接。例如以下程序,func.cpp func.hpp test.cpp 均在同一目录下

编译:打开cmd 输入:g++ -c  test.cpp func.cpp 

链接:在cmd中输入 :g++ -o test test.o func.o 即可

上面的程序比较简单,源文件很少,而且均在同一个文件夹中,使用g++进行编译链接还比较简单,但是当工程比较复杂,源文件很多并且放在不同的文件夹中时,再使用g++命令将变得很复杂。

以上面的程序为例,将文件 func.cpp func.hpp 放入func文件夹中,如下图所示

技术分享图片 

此时利用g++ 进行编译需要输入命令:g++ -c test.cpp ./func/func.cpp -I./func ,编译后 test.o以及func.o将出现在同一目录下。

技术分享图片

使用以上命令对程序进行编译链接并没有问题,但是当工程源文件越来越多,目录结构越来越复杂时,每次输入g++ 命令将变得十分繁琐和复杂,影响工作效率,为此,makefile出现了,准确的说,makefile只是一个文本文件,makefile通过描述各个工程文件间的依赖关系,利用g++实现了工程的自动化编译。

对于上面的例子,使用makefile进行编译(本人使用的是mingw64),新建makefile文件,代码如下:

test:./obj/test.o ./obj/func.o
  g++ -o test ./obj/test.o ./obj/func.o

./obj/test.o:test.cpp ./func/func.hpp
  g++ -c test.cpp -o ./obj/test.o -I./func/

./obj/func.o:./func/func.cpp ./func/func.hpp
  g++ -c ./func/func.cpp -o ./obj/func.o

.PHONY:clean
clean:
  del .\obj\*.o test.exe

在当前目录下打开cmd ,键入mingw32-make 即可对工程进行编译

makefile入门-初步了解

标签:工程   复杂   UNC   ++   源文件   自己   info   src   ima   

原文地址:https://www.cnblogs.com/beikew/p/10134534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!