博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Makefile学习(一)----初步理解
阅读量:5073 次
发布时间:2019-06-12

本文共 1533 字,大约阅读时间需要 5 分钟。

一.我对makefile的理解:

经过一段时间对makefile的学习,我理解的makefile就是将程序员手动编译源文件的过程用一个脚本执行,这对于小型项目来说,程序员手动执行和用makefile来执行感官上可能没有大的差异,但是对于中大型项目来说,makefile的存在大大提供了程序员编译代码效率,一个好的makefile文件是一个项目健康存在的基础。

 

二.初涉makefile:

   用个简单的例子初步认识下makefile:

源文件:test.cpp:

#include<iostream>

using namespace std;

 

class A

{

        private:

        int a;

        public:

        A(int i)

        {

                a=i;

        }

 

        void disp()

        {

                cout<<a<<",";

        }

};

 

class B

{

        private:

        int b;

        public:

        B(int j)

        {

                b=j;

        }

 

        void disp()

        {

                cout<<b<<",";

        }

};

 

class C:public B,public A

{

        private:

        int c;

        public:

        C(int k):

        A(k-2),B(k+2)

        {  

                c=k;

        }

 

        void disp()

        {

                A::disp();

                B::disp();

                cout<<c<<endl;

        }

};

 

int main()

{

        C obj(10);

        obj.disp();

        return 0;

}

 

Makefile文件Makefile:

test:test.o

        g++  test.o  -o  test   

test.o:test.cpp

        g++  -c  test.cpp  -o  test.o

 

clean:

        rm  -fr  test  test.o

****************************************************************************

test:test.o                         ---- test是目标文件,也就是最后要生成的可执行文件;

                                               test.o编译源文件产生的中间代码文件;

                                               这行命令的意思是:目标文件test的产生依赖于中间代码文件test.o;

g++  test.o  -o  test           ---- 这行是编译器通过中间代码文件产生目标文件的命令,命令必须以tab键打头,否则执行的时候会报错;这边使用的是g++编

                                               译器,所以你的环境必须安装g++编译器;

test.o:test.cpp                    ----这行的目标文件是test.o,依赖文件是test.cpp;和第一行的格式相同;

g++ -c test.cpp –o test.o     ----这行是通过源文件test.cpp如何生成中间代码文件test.o,是编译命令;

 

clean:

        rm  -fr  test  test.o

 

clean是清除想要删除的文件,执行的时候需要使用命令make clean,一般是删除中间代码文件和最后生成的目标文件,即可执行文件;

 

      在环境中执行make命令,系统就会在目录下自动寻找Makefile、makefile文件,然后执行makefile文件中的内容;同样,你可以指定你自己的makefile文件名,比如:makefile_201020831,执行的时候必须用make –f makefile_201020831;

      Makefile的执行过程是一个递归的过程,目标文件:依赖文件,是使用命令通过依赖文件生成目标文件的过程;

      验证生成的目标文件,即可执行文件,直接./test即可。

转载于:https://www.cnblogs.com/Lxk0825/p/9935742.html

你可能感兴趣的文章
css3动画属性
查看>>
Mongodb 基本命令
查看>>
控制文件的备份与恢复
查看>>
软件目录结构规范
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
iOS开发——缩放图片
查看>>
HTTP之URL的快捷方式
查看>>
满世界都是图论
查看>>
配置链路聚合中极小错误——失之毫厘谬以千里
查看>>
蓝桥杯-分小组-java
查看>>
Android Toast
查看>>
iOS开发UI篇—Quartz2D使用(绘制基本图形)
查看>>