第4月第1天 makefile

1.

gnu make的函数调用是$,比如 $(subst ee,EE,feet on the street)

Pattern Rules

Makefile里的.c.o等价于 %.o : %.c

.c.o:
    $(COMPILE) -MT [email protected] -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o [email protected] $<
    $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DLIBDIR=\"/usr/local/lib\" -DINCLUDEDIR=\"/usr/local/include\" -DHAVE_CONFIG_H -I.  -I./glob    -g -O2 -MT ar.o -MD -MP -MF .deps/ar.Tpo -c -o ar.o ar.c
mv -f .deps/ar.Tpo .deps/ar.Po...

gcc  -g -O2   -o make ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o implicit.o job.o main.o misc.o read.o remake.o remote-stub.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o glob/libglob.a

 下载3.8.2源码编译,./configure && make

http://www.gnu.org/software/make/manual/make.html#Text-Functions

http://ftp.gnu.org/gnu/make/

时间: 2024-08-27 00:10:54

第4月第1天 makefile的相关文章

makefile实例(1)-helloworld

简单makefile实例 1,源文件: main.cpp #include <stdio.h> int main() { printf("Hello World\n"); return 0; } 2,编写makefile 若使用g++命令编译链接程序,可以: g++ -o hello main.cpp 或 g++ [-o main.o] -c main.cpp g++ -o hello main.o 若使用make命令,则可以这么编写makefile文件(两种写法分别对应了

单文件夹下的C程序如何编写Makefile文件

通过学习已经学会了GCC的一些基础的命令,以及如何将C语言源代码编译成可执行文件. 我们已经知道在linux环境下编译源码时,常会有以下三个步骤: ./configure make make clean 执行./configure时,会检查系统的配置等,得到相关的有用的信息,生成Makefile文件. 执行make命令时,make命令解释Makefile文件中的规则,生成目标文件. 执行make clean会删除生成目标文件过程中的生成的中间文件. Makefile文件是可以由我们手工建立的:接

Makefile 简单例子1

测试环境 [email protected]:/home/ubuntu16/code2# ll 总用量 32 drwxr-xr-x 2 root root 4096 9月 5 23:44 ./ drwxr-xr-x 7 ubuntu16 ubuntu16 4096 9月 5 23:44 ../ -rw-r--r-- 1 root root 68 9月 5 04:41 add.c -rw-r--r-- 1 root root 70 9月 5 04:51 add.h -rw-r--r-- 1 roo

Makefile:如何写目标依赖

本文并不是Makefile的教程,仅是本人学习时的感悟. Makefile的基本格式 目标:依赖文件(or 目标) [tab]命令 目标: 是要生成的或操作的命令的索引 依赖: 是生成目标依赖的文件或目标 命令: 是为了生成目标需要执行的shell语句 任意一个依赖文件被改动,将导致已存在的目标文件过期,简单来说,依赖的作用就是决定目标是否过期,是否需要重新编译. 举个例子, #include <stdio.h> #include "mylib1.h" #include &

Nginx性能测试工具之http_load

http_load基于linux平台的一种性能测工具.用以测试web服务器的吞吐量与负载,测试web页面的性能.工具简单轻巧容易测试,但只能在Linux系统上使用,且只能测试web服务,不能对数据库进行测试.以下就用一台虚拟机测试一下nginx性能,测试只是写出方法并不是生产环境. 1.下载和安装http_load [[email protected] home]#  wget http://www.acme.com/software/http_load/http_load-14aug2014.

练习题,linux安装包相关知识

1. 区分 rpm -qi -qf  -ql  -qa四个不同选项组合的作用? #rpm -qi 得到一个已安装rpm包的相关信息 #rpm -qf 列出一个文件属于哪个rpm包 #rpm -ql 列出一个rpm包安装的文件 #rpm -qa 查询当前系统所有安装的rpm包2. rpm -qi 后面如果跟一个未安装的包名,会显示什么信息? package libjpeg-turbo-devel is not installed 3. 请找出 vim 这个命令是由哪个rpm包安装来的? 答: [[

linux 虚拟终端

Linux中的虚拟终端 所谓虚拟,是因为物理上它还是在本机上的一个软件控制台,而不是一个真正的远程物理终端,但是虚拟终端确在实现上显得更统一了,这就像Linux同等对待设备和一般文件一样. Linux是一个多终端的操作系统,你甚至可以使用同一个用户ID在多个终端上同时登陆. 默认地,控制台虚拟终端有6个,GUI终端有1个.在过去的Red Hat Linux中要登录终端你可以通过Alt+F1至F6键登陆控制台虚拟终端,通过Alt+F7登陆GUI终端.而现在的Fedora Core 6. Fedor

Linux命令之ln

硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一. 不过讨论链接之前,有必要复习一下Linux的文件系统和文件.提起文件,我们最先想到的就是文件名和文件内容.没错,这的确是我们(人类)最关心的两个属性,但是在计算机看来,除此之外还需要加入更多的属性才能实现有效的文件管理.这些属性从计算机的角度可以分为两大类:元数据和用户数据,计算机关心的是前者

Nginx平滑升级到最新版本

(一)简述: 早上收到nginx最新漏洞的通知,Nginx官方发布最新的安全公告,在Nginx范围过滤器中发现了一个安全问题(CVE-2017-7529),通过精心构造的恶意请求可能会导致整数溢出并且不正确处理范围,从而导致敏感信息泄漏. 当使用Nginx标准模块时,如果文件头从缓存返回响应,允许攻击者获取缓存文件头.在某些配置中,缓存文件头可能包含后端服务器IP地址或其他敏感信息.此外,如果使用第三方模块有潜在的可能导致拒绝服务. 影响版本 Nginx 0.5.6-1.13.2 漏洞等级 中危