网站大量收购闲置独家精品文档,联系QQ:2885784924

第1章-Linux安装和编译.ppt

  1. 1、本文档共217页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 典型的设定目标 设定目标也可以用来描述一些其他的动作。例如,想把中间文件和可执行文件删除,可以在 makefile 里设立这样一个规则: clean: $rm *.o exec_file 前提是没有其它的规则依靠这个 ‘clean’ 目的,它将永远不会被执行。 但是,如果明确的使用命令 ‘make clean’ , make 会把这个目的做为它的主要目标,执行那些 rm 命令 * Makefile中的函数 (Functions) 用来计算出要操作的文件、目标或者要执行的命令 使用方法 $(function arguments) 典型的函数 $(subst from, to, text) :替换字符串 $(subst ee, EE, feet on the street) 相当于`fEEt on the strEEt $(patsubst pattern, replacement, text) $(patsubst %.c,%.o, x.c.c bar.c) 相当于`x.c.o bar.o‘ $(wildcard pattern) $(wildcard *.c) objects := $(wildcard *.o) * Makefile中的条件语句 conditional-directive text-if-true endif or conditional-directive text-if-true else text-if-false endif * 四种条件语句 ifeq...else...endif ifneq…else…endif ifdef…else…endif ifndef...else…endif * 带条件的makefile举例 sum: main.o sum.o gcc –o sum main.o sum.o main.o: main.c sum.h gcc –c main.c #deciding which file to compile to create sum.o ifeq ($(USE_SUM), 1) sum.o: sum1.c sum.h gcc –c sum1.c –o $@ else sum.o: sum2.c sum.h gcc –c sum2.c –o $@ endif * 作业:分析makefile # Makefile to compare sorting routines BASE = /home/blufox/base CC = gcc CFLAGS = -O –Wall EFILE = $(BASE)/bin/compare_sorts INCLS = -I$(LOC)/include LIBS = $(LOC)/lib/g_lib.a \ $(LOC)/lib/h_lib.a LOC = /usr/local OBJS = main.o another_qsort.o chk_order.o \ compare.o quicksort.o $(EFILE): $(OBJS) @echo “linking …” @$(CC) $(CFLAGS) –o $@ $(OBJS) $(LIBS) $(OBJS): compare_sorts.h $(CC) $(CFLAGS) $(INCLS) –c $*.c # Clean intermediate files clean: rm *~ $(OBJS) * GNU Package的典型安装 FAQ 0039 @ smth 下载源代码包foo-1.0.tar.gz tar xvzf foo-1.0.tar.gz cd foo-1.0 ./configure make (su) make install 问题1:配置脚本configure是怎么生成的? 问题2:configure脚本怎么知道该如何生成Makefile 幕后英雄—— GNU Auto Tools: autoconf, automake, libtool, autoscan, autoheader…… * 编译与安装集成工具? GNU Auto Tools是上个世纪90年代开始发展起来的一系列辅助开发、打安装包的自动化工具 各种工具分别开发,但是协同工作的很好。比如autoconf, automake, libtool等等 * Hello World创建步骤 1. hello.c #include stdio.h int mai

文档评论(0)

135****7705 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档