linux make用法

makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
makefile带来的好处就是--“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make.可见,makefile都成为了一种在工程方面的编译方法。
make
根据Makefile文件编译源代码、连接、生成目标文件、可执行文件。
make clean
清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。
make install
将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。
make dist
产生发布软件包文件(即distribution package)。这个命令将会将可执行文件及相关文件打包成一个tar.gz压缩的文件用来作为发布软件的软件包。
它会在当前目录下生成一个名字类似“PACKAGE-VERSION.tar.gz”的文件。PACKAGE和VERSION,是我们在configure.in中定义的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。
make distcheck
生成发布软件包并对其进行测试检查,以确定发布包的正确性。这个操作将自动把压缩包文件解开,然后执行configure命令,并且执行make,来确认编译不出现错误,最后提示你软件包已经准备好,可以发布了。
make distclean
类似make clean,但同时也将configure生成的文件全部删除掉,包括Makefile文件。
### Linux `make` 命令用法教程 #### 一、概述 `make` 是一个常用的命令行工具,用于自动化构建和管理软件项目。其主要功能在于编译源代码、生成可执行文件或库,并处理项目中的依赖关系[^1]。 #### 二、工作原理 该命令通过读取名为 "Makefile" 的配置文件来了解如何构建程序以及各个部分之间的相互依赖情况。Makefile 文件内含一系列规则,每条规则描述了一个特定的目标及其所需的前提条件(即其他文件),还有创建此目标的具体操作步骤。一旦用户输入 `make [目标]` 这样的基本语法结构后,系统便会依据这些预设指导完成相应任务。 #### 三、安装验证 为了确认当前环境已正确设置好支持 `make` 工具,在终端里键入 `$ make --version` 可查看所使用的具体版本号及相关版权信息。对于GNU Make 4.2.1来说,则显示如下内容: ```bash $ make --version GNU Make 4.2.1 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ``` #### 四、参数选项 除了指定要制作的目标外,还可以附加一些特殊标志给 `make` 来改变行为模式。例如 `-b`, `-m` 参数可用于兼容旧版Unix系统的变体形式[^3]。 #### 五、简单实例 假设有一个简单的 C++ 程序由两个源码文件组成——main.cpp 和 util.h/util.cpp 。此时可以在同一目录下建立一个 Makefile ,内容大致如下所示: ```makefile # 定义变量 CC=g++ CFLAGS=-Wall -g TARGET=program_name all: $(TARGET) $(TARGET): main.o util.o $(CC) $(CFLAGS) -o $@ $^ %.o: %.cpp $(CC) $(CFLAGS) -c $< -o $@ clean: rm -f *.o $(TARGET) ``` 上述脚本定义了四个主要部分:“all”,“target”,“.o” 编译规则,“clean”。其中 all 表示默认执行的任务;而 clean 则用来清理临时产生的对象文件与最终产物。每当修改过任意 .cpp 或者 .h 后再次调用 `make` 就能只重新编译那些确实发生变化的部分而不是全部重做一遍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值