关于c++:Makefile常用命令详解

34次阅读

共计 1524 个字符,预计需要花费 4 分钟才能阅读完成。

在软件开发中,Makefile 是一种十分罕用的自动化工具。Makefile 文件蕴含了一系列规定,用于编译、打包、测试等操作,能够帮忙咱们自动化这些操作,进步我的项目的治理和编译效率。本文将介绍 Makefile 中罕用的命令,以及如何应用它们来编译和治理我的项目


make

make 命令是最根本的命令,用于执行 Makefile 文件中的规定。Makefile 是由一系列规定组成的,每个规定由指标、依赖和命令三局部组成。make 会依据这些规定,主动确定哪些文件须要从新编译,哪些文件不须要编译。通常,咱们能够应用如下命令运行 make:

 make [options] [target]

其中,options 是可选的参数,用于管制 make 的行为。例如,咱们能够应用“-j”参数指定并行编译的数量。target 是要编译的指标文件名,能够省略。如果省略,则默认执行 Makefile 文件中的第一个指标。


clean

clean 命令用于删除生成的指标文件。在编译过程中,咱们会生成一些两头文件和指标文件,这些文件可能会占用较多的磁盘空间。应用 clean 命令能够清理这些文件,开释磁盘空间。例如:

 clean:
     rm -rf *.o

这条规定的作用是删除所有以“.o”结尾的文件。


all

all 命令用于生成所有的指标文件。通常,咱们在 Makefile 中会定义多个指标,应用 all 命令能够一次性编译所有指标。例如:

 all: target1 target2 target3

这条规定的作用是编译 target1、target2、target3 三个指标。


install

install 命令用于将生成的文件装置到指定的目录中。在编译实现后,咱们通常须要将生成的可执行文件或库文件装置到零碎中,以便其余程序应用。例如:

 install: all
     cp target /usr/local/bin/

这条规定的作用是将编译生成的 target 文件拷贝到“/usr/local/bin/”目录下。


uninstall

uninstall 命令用于卸载已装置的文件。在装置实现后,咱们可能须要卸载已装置的文件,例如进行版本回滚。例如:

 uninstall:
     rm /usr/local/bin/target

这条规定的作用是删除“/usr/local/bin/”目录下的 target 文件。


depend

depend 命令用于自动更新源文件的依赖关系。在大型项目中,源文件之间可能存在简单的依赖关系,当一个源文件发生变化时,须要从新编译依赖于它的所有文件。应用 depend 命令能够自动更新依赖关系,防止手动保护依赖关系。例如:

 depend:
     gcc -M *.c > .depend

这条规定的作用是生成一个.depend 文件,保留所有源文件的依赖关系。


自定义命令

除了上述常用命令外,Makefile 还反对自定义命令。例如,咱们能够定义一个命令来运行我的项目的测试:

 test:
     ./run_tests

这条规定的作用是运行我的项目的测试脚本。


高级个性

Makefile 还反对循环、条件语句等高级个性。例如,咱们能够应用循环来编译多个源文件:

 objects = main.o foo.o bar.o
 
 all: $(objects)
 
 $(objects): %.o: %.c
     gcc -c $< -o $@

这条规定的作用是编译 main.c、foo.c 和 bar.c 三个源文件,生成对应的指标文件。其中,“%”示意通配符,示意匹配任意字符。


总结

以上是罕用的 Makefile 命令,应用这些命令能够大大提高我的项目的治理和编译效率。另外,Makefile 还反对循环、条件语句等高级个性,能够依据须要灵便应用。把握这些命令和个性,能够让你更加高效地治理和编译软件我的项目。

正文完
 0