make学习

高级语言需要经过编译和链接,最终生成可执行的目标代码即C/C++源代码要经过汇编器,汇编语言源代码经过汇编器,生成目标文件。如果有多文件要编译。为了便于管理,可将具体操作按一定的规则写入makefile文件,make工具根据makefile文件的要求执行相关命令生成目标文件。

GCC(包含预处理器、编译器、汇编器、链接器等工具): GNU下编译器及相关工具的集合。GCC原名为GNU C语言编译器,原本只能处理C语言,但是随着GCC的发展,目前支持多种高级语言如C++、Java。

一、语法:gcc [选项] 目标文件 源文件

二、汇编工具:as

语法:as [选项] 汇编文件
功能:将汇编语言的源代码会变成为目标代码
如:as -o test.o test.s #将汇编语言源代码test.s汇编成为目标代码test.o
因为gcc是汇编工具的集成器,所以汇编器as可以使用gcc-S代替

三、链接器:ld
链接器将一系列的目标文件、库和链接命令文件作为输入,根据链接命令文件的要求将目标代码进行合并,生成所需的目标代码。在默认情况下,无须定义链接命令文件,链接器ld会使用默认的链接命令文件。

项目管理工具:*********** GNU make************

在开发大规模的项目时,一般需要设计很多模块,完成各自的功能。此时存在多个源代码文件,当生成最终的可执行文件时,必须逐个编译这些源代码文件,最后将所有的目标文件链接成为可执行文件。若有一个源代码修改,则须重新编译和重新链接,很耗时费力。

为此GNU项目开发了一个用于自动完成这些操作的项目管理工具make,用户只需将这些步骤按一定的语法规则以命令形式写入文本文件,一般命名为makefile,makefile告诉make该做什么,此后用户只需输入make命令,make工具会自动根据makefile文件中的定义自动执行编译和链接。
如:gcc -o output main.c app.c mod.c lib.c

形如:appexam: main.o app.o mod.o lib.o (目标文件:依赖文件列表)

(tab) gcc -o appexam main.o app.o mod.o lib.o(命令)

用户可以直接使用make appexam #指定要创建的目标appexam
如果未制定目标,则创建第一个目标

*************makefile中的变量*******************

makefile中变量可用于保存文件名列表、命令、命令参数等。make工具支持4种类型的变量,分别是自定义变量、环境变量、预定义变量和自动变量。
1.自定义变量
一般用大写字母表示
语法:变量名=字符串
功能:将字符串赋给变量名
引用:$(变量名)
2.环境变量
make在执行过程中,将环境变量转化为同名同值的make变量,用户可以在makefile中对这些变量进行重新定义。
3.预定义变量
如:AR、AS、CC、CXX、CPP、RM
4.自动变量
自动变量由make工具预先定义,有特定的含义,它的值与规则中的目标和依赖对象有关。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值