Linux下makefile文件的编写
在学习如何编写makefile文件之前,我们首先需要了解什么是makefile文件:
makefile描述了整个工程的编译和链接等规则。它指明了哪些文件需要先编译,哪写文件需要后编译,哪些文件需要重新编译,甚至进行更复杂的功能操作。makefile的“自动化编译”可以极大的提高软件的开发效率。
makefile的基本规则:
目标:依赖
(tab)命令
根据这个命令来编写一个简单的makefile文件:
定义了fun1.cpp fun2.cpp head.h 和main.cpp文件,利用这几个文件来编写一个简单的nakefile文件。
那准备工作做完后,我们来创建makefile文件:
vim makefile
在makefile文件里面,我们写上:
main:main.cpp fun1.cpp fun2.cppg++ main.cpp fun1.cpp fun2.cpp -o main
创建好后,输入make命令,运行,得到main可执行文件
输入./main运行可执行文件:
缺点:当这些文件没有被修改时,运行make命令,它会提示我们所有的文件都是最新的,这也展现了makefile文件知道项目什么时候需要编译,那些文件需要编译,哪些不需要。但是当我们只修改了其中一个文件时,在重新执行make命令,所有的文件都会重新编译。如果这个项目里面有很多文件的话,那修改一个,就要重新编译很多个文件,这样执行效率就会很低。
为了解决这个问题,我们将makefile文件进行改写:
main_test : main.o fun1.o fun2.og++ main.o fun1.o fun2.o -o main_test.omain.o : main.cppg++ -c main.cpp -o main.o -I./fun1.o : fun1.cppg++ -c fun1.cpp -o fun1.ofun2.o : fun2.cppg++ -c fun2.cpp -o fun2.o
重新执行make命令, 当面对新的文件被修改,那么只要要重新编译被修改的文件即可。
Linux下makefile文件的编写相关推荐
- Linux平台Makefile文件的编写基础篇和GCC参数详解
问:gcc中的-I.是什么意思....看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢 最佳答案 答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/incl ...
- linux下Makefile中包含有shared library动态链接库文件时候的简单例子
如果不知道什么是makefile,可以首先看我的另一篇博客: linux下Makefile的简单例子及解释 http://www.cnblogs.com/lihaozy/archive/2012/08 ...
- Linux下Makefile编写语法
原创 Linux下Makefile编写语法 2016-07-29 08:31:53 Datrilla 阅读数 1386更多 分类专栏: Linux Makefile 版权声明:本文为博主原创文章,遵循 ...
- linux下查看文件的权限,Linux下查看文件权限、修改文件权限的方法
查看权限命令查看目录的相关权限可以采用命令ls -lD,或者直接用ls -la 如 ls -l www.jb51.net //这里表示查看www.jb51.net目录 修改权限命令 chmod 77 ...
- Makefile文件的编写(实例详解)
1.什么是Makefile? 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,Makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译 ...
- linux 下删除文件的 操纵
linux 下删除 文件的 方法::: 1- remove remove(删除文件) 相关函数 link,rename,unlink 表头文件 #include<stdio.h> 定 ...
- 【转】Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现
转自:Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现_Jaster_wisdom的专栏-CSDN博客 之前在这里和这里调用了matlab自带的一些函数,是通过matl ...
- Linux内核Makefile文件
Linux内核Makefile文件(翻译自内 核手册) 转载自:http://blog.chinaunix.net/uid-21651676-id-60377.html Linux 内核Makefil ...
- Linux下Makefile的automake生成全攻略(转)
Linux下Makefile的automake生成全攻略(转)[@more@] 文/余涛 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便 ...
最新文章
- 猴子会照镜子吗?科学家的这一研究意义非凡!
- java properties读取 封装_java properties 文件读取踩坑记
- 成功解决ImportError: cannot import name ‘ft2font‘ from ‘matplotlib‘
- 轻量级社会化分享openShare源码解析
- 自由自在休闲食品带给小资的冰淇淋生活
- Scala入门到精通——第十节 Scala类层次结构、Traits初步
- poj 3522(最小生成树应用)
- hibernate中的id特殊属性hilo剖解(多用于继承关系)
- 在c语言中利用链表常见问题,C语言,链表中遇到棘手有关问题
- VMware ESXi/ESX 的内部版本号和版本 (2143832)-2020-10-27更新
- jQuery:ajax中form表单serialize()序列化方法
- 极客大学架构师训练营 微服务架构 领域驱动设计DDD 中台架构、组件设计原则 第十次作业
- 平板电脑全国产化电子元件推荐方案
- 计算机三级网络技术考过指南 【历年考点汇总】
- 教学|zbrush:利用分组Dynamesh,对模型进行重建细分
- 批处理一键打开Windows远程桌面
- C# 导入EXCEL 报错外部表不是预期的格式错误
- Mysql数据库-初识Mysql
- 软件分享——Bilibili缓存视频合并软件,m4s音视频合并工具
- 【关于VB连接EXCEL数据库以ADODB方式】
热门文章
- 操作系统(设备管理)
- win10壁纸不能幻灯片放映_怎么设置Win10系统在无电源情况下开启壁纸幻灯片放映?...
- 【漫画】分享16张程序员高端漫画
- 计算机分支结构语句的实验报告,c语言 实验报告三 分支结构程序设计
- 600以内的蓝牙耳机哪款好?盘点600元蓝牙耳机性价比之王
- 骨传导耳机哪款性价比高,最具性价比骨传导耳机推荐
- 江苏工匠杯-unseping序列化,正则绕过(全网最简单的wp)
- 莫队算法学习笔记(二)——带修莫队
- bwareaopen
- 计算机办公软件应用中级,计算机办公软件应用中级证