[转]Linux下的Makefile】的更多相关文章

本文目的: 尝试着把makefile讲解清楚.非原创,仅仅是学习笔记和备忘录之用. makefile 的目的和好处: 一个工程中的源文件不计数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令.makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译…
原文地址: https://www.cnblogs.com/mfryf/p/3305778.html 近期在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出来,方便学习. 后记,看完发现这篇文章和<Linux环境下的C编程指南>的makefile一章所讲述的惊人的相似,仅仅是这篇文章从一个实例切入,在有些地方比較好理解.能让人看懂就是好文章. 跟我一…
什么是makefile呢?在Linux下makefile我们可以把理解为工程的编译规则.一个工程中源文件不计数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,那些文件需要先编译,那些文件需要后编译,那些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本一样,其中也可执行操作系统的命令. makefile带来的好处就是---“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大地提高了软件开发的效率.…
1.程序代码结构如下 makefile/ |-- Makefile |-- haha.c `-- hehe.c 1.1.需要被编译的源代码如下 $ cat haha.c #include "stdio.h" int main() { printf("ha ! ha !\n"); ; } $ cat hehe.c #include "stdio.h" int main() { printf("he ~ he ~\n"); ; }…
Makefile 介绍——————— make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序. 首先,我们用一个示例来说明Makefile的书写规则.以便给大家一个感兴认识.这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件.我们的规则是:1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接.2)如果这个工程的某几个C文件被修改…
linux编译多个源文件的程序比较麻烦,这下就需要通用的Makefile了,编译的时候执行一下make命令就OK,下面介绍通用makfile的写法. 假设现在有以下源文件:file1.h file1.c file2.h file2.c mainproc.c,程序的主函数在mainproc.c中. #######通用Makefile模板######## # 目标文件名字 TARGET = Myproc # c源文件 SRC = mainproc.c file1.c file2.c # object…
一. gcc常用编译命令选项 假设源程序文件名为test.c. 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理.汇编.编译并链接形成可执行文件.这里未指定输出文件,默认输出为a.out. 2. 选项 -o 用法:#gcc test.c -o test 作用:将test.c预处理.汇编.编译并链接形成可执行文件test.-o选项用来指定输出文件的文件名. 3. 选项 -E 用法:#gcc -E test.c -o test.i 作用:将test.c预处理输出test…
文中部分引用自:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225 windows下makefile环境配置见于:http://www.cnblogs.com/cvbnm/articles/1954872.html 最近我们的助教让我们写一个贪食蛇的小程序,虽然难度并不大,但却对我们的整体编程能力的提高有一定的帮助,其中在他的提供的框架中用到了makefile,我之前代码打了不少,但并没有系统的学习编程,因此对makefile…
目录 概述 关于程序的编译和链接 Makefile 介绍 Makefile的规则 一个演示例子 make是怎样工作的 makefile中使用变量 让make自己主动推导 另类风格的makefile 清空目标文件的规则 Makefile 总述 Makefile里有什么? Makefile的文件名称 引用其他的Makefile 环境变量 MAKEFILES make的工作方式 书写规则 规则举例 规则的语法 在规则中使用通配符 文件搜寻 伪目标 多目标 静态模式 自己主动生成依赖性 书写命令 显示命…
make是linux下的编译命令,用于编译和生成Linux下的可执行文件.这个命令处理的对象是Makefile,makefile等.由于make的强大解析能力,makefile文件的编写也变得极为简单. 以下是一个makefile的例子 objects = main.o kbd.o command.o display.o \ insert.o search.o files.o utils.o edit : $(objects) gcc -o edit $(objects) $(objects)…
概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力. 因为,makefile关系到了整个工程的…
一.引言          从我们刚开始编写一个简单的C/C++ "Hello,World!",到将其编译.运行处结果—这部分工作IDE(集成开发环境)帮我们做了,包括语法错误检查,编译,调试,执行二进制程序.大部分时间我们只关注程序代码本身的编写,如何在Linux下对C/C++源代码的      进行有效管理,包括编译.链接.调试,make工具可以帮助我们完成这部分的工作. 二.从“Hello,World”说起 1.执行单个源文件  一个编写好的C或C++代码源程序需要通过编译.链接…
做开发快3年了,在linux下编译安装软件算是家常便饭了.就拿gcc来说,都有不下10次了,可基本每次都会碰到些奇奇怪怪的问题.看来还是像vs.codeblocks这样的ide把人弄蠢了.便下定决心一定要好好学习下如何在linux下纯手工gcc编译c项目.今天学了2点,一个是库文件处理,另一个是makefile编写. 学习的系统是centos6.6,编译升级的gcc4.8.2,明天写个博客总结下这回gcc安装的过程,每次都能学到些东西. gcc的编译过程 首先需要清楚gcc编译做了些什么 源文件…
转自陈皓 (CSDN) 概述—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力. 因为,makef…
linux下c编程中makefile是必须会的,我刚开始学,将我对makefile的理解记录下来. 通常我们在windows下编写c程序,有各种ide工具为我们执行makefile工作但在linux下没有这些工具,编代码要靠你,测试要靠你,最后自动化编译设计也要靠你自己.所以我们要学会如何在linux下makefile. 首先编写首先编写add.c文件, #include "test.h" #include <stdio.h> int add(int a, int b) {…
彩色进度条的实现与makefile编译: 创建一个process文件,在里面编写实现进度条的代码    1.在编写代码的时候我们首先要区分两个转义字符:\n \r \n:表示换行,换到下一行,并位于起始位置,并不会覆盖原来的内容. \r:表示回车,回到这一行的起始位置,相当于覆盖了之前的内容,不会重启一行. 2.其次了解linux下的 usleep() 函数: 功能:把调用该函数的线程挂起一段时间 , 单位是微秒(即百万分之一秒) 头文件:unistd.h 语法: void usleep(int…
星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编译器是标准C语言,可以编译Intel MCS51架构的微处理器,也可以编译STM8等常见MCU.我们要在linux上搭建51开发环境,首先要搭建SDCC编译环境. 其主页是:http://sdcc.sourceforge.net/ ,下面是SDCC的首页简介: SDCC is a retargett…
在linux下makefile的使用…
原文转载自:http://www.cpplive.com/html/1776.html 另外一个不错的博客http://bbs.chinaunix.net/thread-1950588-1-1.html 对于Linux跟Unix系统而言,make是一个极其重要的编译命令,我们在开发项目或者安装应用软件时,经常要用到make或make install,对于一个包含几十.几百甚至成千上万个源文件的项目,如果每次都要键入gcc或g++等命令来进行编译的话,那对于程序员简直就是一场噩梦,而使用make和…
http://www.yesky.com/120/1865620.shtml 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configu…
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将给大家介绍如何使用 autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux…
April 18, 2020 6:54 AM - BEAUTIFULZZZZ 目录 0 前言 1 gradle 安装配置 1.1 卸载系统默认装的gradle 1.2 下载对应版本的二进制文件 1.3 配置gradle: 1.4 检查配置 1.5 gradle 命令行操作 2 全自动脚本编写 2.1 自动构建安卓开发环境 2.2 编译.运行.清除 3 效果展示 LINKS . 0 前言 在上上篇<[编译] 5.在Linux下搭建安卓APP的开发烧写环境(makefile版)-- 在Linux上用…
目录 一.SDCC(Small Device C Compiler)编译环境搭建 1.1.下载 1.2.编译 1.3.测试 二.Hex2Bin+命令行烧写工具配置使用 2.1.下载工具安装配置 2.2.编译+烧写 链接 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编译器是标准C语言,可以编译Intel MCS51架构的微处理器,也可以编译STM8等常见MCU.我们要在linux上搭建STM8开发环境,首先要搭建SDCC编译环…
第一步:常用工具安装:正所谓:"工欲善其事,必先利其器".我们常用的工具主要有GNU AutomakeGNU AutoconfGNU m4GNU Libtool1.查看自己系统中是否安装有这些工具终端输入命令:which autoconf2.如果没有装则安装终端输入命令:sudo apt-get install autoconf第二步:自动生成makefile的步骤  该步骤是一成不变的,需要改变的只是文件里的内容1.运行autoscan命令    扫描源代码以搜寻普通的可移植性问题,…
[make是什么?] make是一个命令工具,是一个解释makefile中指令的命令工具.它可以简化编译过程里面所下达的指令,当执行 make 时,make 会在当前的目录下搜寻 Makefile (or makefile) 这个文本文件,执行对应的操作.make 会自动的判别原始码是否经过变动了,而自动更新执行档. [为什么要使用make?] 假设,现在一个项目里面包含了100个程序文件,如果要对这个项目进行编译,那么光是编译指令就有100条.如果要重新进行编译,那么就又得像之前一样重新来一遍…
1.         gcc与g++编译流程: 1)         编译流程: 2)         预处理:生成.i的预处理文件. Ø 只激活预处理,这个不生成文件,需要把它重定向一个输出文件. Ø 演示: 3)         编译:生成.s的编译文件. Ø 只激活预处理和编译,把文件编译成汇编代码. Ø 演示: 4)         汇编:生成.o的汇编文件. Ø 只激活预处理.编译和汇编,把程序做成obj文件. Ø 演示: 5)         链接:生成链接文件. Ø 激活预处理.编…
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路线图,帮助新人尽快上手. 本文介绍的我所在小组的一些开发流程及相关工具.做为新人入门手册,其中某些工具可能只有我们这边在用,但对于其他公司的新人来说,一样是具有指导意义的. 2015.4.11 更新: 增加构建工具 Bazel, CMake介绍 增加Linux下任务管理相关命令 增加正则表达式调试的…
在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库(*.a)与动态库(*.so)的生成与使用方式是不同的.刚开始可能会不适应,但是用多了应该会习惯这种使用,因为步骤上并没有VS下配置那么繁琐.下面就分别总结下linux下生成并使用静态库与动态库的方法:(由于是C++项目,所以编译器用的g++,但是与gcc的使用是相通的) 首先是准备工作,把我们需要…
本文教你如何使用autoconf.automake等来制作一个以源代码形式(.tar.gz)发布的软件.并可在执行configure时使用自定义参数. 一.概述和基础知识 在Linux下得到一个以源代码形式发布的包(一般为.tar.gz或.tar.bz2格式),我们可以用 ./confiugure.make.make install来编译安装,其中在运行./configure的时候还可以根据自己的需要加入不同的参数(可用./configure --help来查看参数表). 先说说执行./conf…
Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一.管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题.本文我们将用一些实例来讨论 make 命令背后的工作机制. Make 如何工作的 对于不知道背后机理的人来说,make 命令像命令行参数一样接收目标.这些目标通常存放在以 “Makefile” 来命名的特殊文件中,同时文件也包含与目标相对应的操作.更多信息,阅读关于 Makefiles 如何工作的系列文章. 当 make 命令第一次执…