make通过Makefile来组织软件项目的编译
基本语法
Makefile的基本语法如下:
目标:依赖项
编译命令
比如,如下一个示例
test: chacha20.cpp test.cpp
g++ test.cpp chacha20.cpp -o test -lsodium
表示生成目标文件test,依赖项为chacha20.cpp和test.cpp文件,执行命令为
g++ test.cpp chacha20.cpp -o test -lsodium
编译生成test可执行文件
源代码目录包含chacha20.cpp, test.cpp文件和Makefile文件

在目录下执行
$ make
系统会自动执行命令
g++ test.cpp chacha20.cpp -o test -lsodium
生成可执行文件test
变量赋值
可以在Makefile中使用变量,如下
CC = g++
SRCS = test.cpp chacha20.cpp
FLAGS = -lsodium
OUTPUT_FILE = test
test: $(SRCS)
$(CC) $(SRCS) -o $(OUTPUT_FILE) $(FLAGS)
clean:
rm test
通过变量来指定编译的工具(g++),源代码文件(SRCS),编译选项(FLAGS),输出文件(OUTPUT_FILE)等,然后在执行命令中可以用这些参数来替代相应位置。
增加了clean选项,表示清理编译输出,在这里就是删除生成的test文件,当执行
$ make clean
之后,程序会清除输出文件