linux下Makefile学习

1. 基本概念

关于程序的编译和链接:
编译 链接
源码------中间代码------可执行文件
.c .o
编译过程中,主要检查语法是否正确,函数与变量声明是否正确,若函数未被声明,编译器会给出警告,但可以生成obj文件;
链接时,主要链接函数和全局变量,负责管理中间目标文件,寻找函数的实现,若找不着,报链接错误码。
大多数情况下,由于源文件较多,编译生成的中间目标文件太多,在链接时要指出的中间目标文件太多,这对编译很不方便,
所以可给中间目标文件打个包,window下称为库文件,即.lib文件;UNIX下,是Archive File,即.a文件。

2. Makefile规则

时间: 2024-12-29 23:04:18

linux下Makefile学习的相关文章

Linux下Makefile学习笔记

makefile 可以用于编译和执行多个C/C++源文件和头文件. (1) #include "file.h" 和 #include <file.h> 的区别 #include "file.h" 会先在当前目录下查找file.h,然后才在系统头文件目录中进行查找: #include <file.h>会先查找系统头文件目录,默认是不会在当前目录下查找的. (2) 关于在头文件中使用#ifndef 和 #define 头文件的主要作用在于多个代码

浅谈Linux下Makefile编写

浅谈Linux下Makefile的编写 前言:本文简要介绍Makefile文件的编写规范,结合具体项目中的应用进行讲解. 具体代码地址: https://github.com/AnSwErYWJ/DogFood/blob/master/Makefile 简介 Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作.而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关

Linux下makefile教程

转自陈皓 (CSDN)概述--什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力.因为,makefile

Linux下Makefile的automake生成全攻略

作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将给大家介绍如何使用 autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux

Linux下MakeFile初探

make是linux下的编译命令,用于编译和生成Linux下的可执行文件.这个命令处理的对象是Makefile,makefile等.由于make的强大解析能力,makefile文件的编写也变得极为简单. 以下是一个makefile的例子 1 objects = main.o kbd.o command.o display.o 2 insert.o search.o files.o utils.o 3 4 edit : $(objects) 5 gcc -o edit $(objects) 6 7

Linux下编程学习一

本篇主要记录一些在学习LINUX下编程时,, C和C++语言的一些基础的常识, 一. 函数指针 void MyFun(int x); 函数声明 void (*FunP)(int ); 函数指针声明 下面是C和C++中的指针定义  int (*pt2Function)(float, char, char) = NULL; // C普通函数指针 int (TMyClass::*pt2Member)(float, char, char) = NULL; // C++中指向静态函数的指针 int (TM

linux下coredump学习

参照 https://www.cnblogs.com/alantu2018/p/8468879.html 1.查看linux下coredump是否开启 在linux上coredump默认是关闭的,可以通过ulimit -c查看,如果输出为0,则代表coredump没有开启. 可以使用 ulimit -c unlimited开启,再用ulimit -c查看,结果为unlimited: 但这种操作只能对当前终端有效,想让coredump持久开启,需修改vim /etc/security/limits

Linux下git学习笔记(一)

我是跟着廖雪峰大神的博客学习git的,他讲的非常容易懂 (http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000),然后自己跟着学的时候并不是很顺利,向github提交代码的时候老是报错,不过最后google很久之后给解决了. 先回顾下今天学的吧 一:在Linux上安装Git sudo apt-get install git 因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:

Linux下makefile(一)

makefile关系到了整个工程的编译规则.一个工程中的源文件不计数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令. 关于程序的编译和链接 一般来说,无论是C.C++,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,LINIX下是 .o 文件,即 Object Fi