Makefile的写法

LinuxC/C++编程基础

Makefile是Linux系统下的一种编译脚本。学Linux的话,特别是用Linux写C或C++程序,就多多少少都会接触到Makefile

基础使用

  1. 新建名称为makefile文本文件
target: dependencies
    command

例子:
1. test: test.c
2.    gcc test.c -o test
3.(一个回车)

target = test 生成test.o可执行文件
dependencies = 依赖于 test.c
command = gcc test.c -o test 把test.c源文件生成test.o命令
  1. 运行makefile脚本
在文件目录下:
 输入   : make
 就运行了makefile文件

进阶使用

gcc test.c tool.c -o main
生成tool.o 和test.o 合并为main.o 在test.c调用的是tool.c里面的函数

多文件合并

在makefile里面写

main: main.c tool.o
    gcc main.c tool.o -o main

tool.o: tool.c
    gcc -c tool.c        (gcc -c tool.c表示直接把tool.c编译成tool.o文件)

Makefile运行顺序是从下往上运行的

一般在生成main之后需要删除可执行文件(.o文件)

makefile 里面添加
clean:
    rm *.o main

命令行命令:
    :make clean
//这里main使用了foo和bar里面的函数
main: main.c foo.o bar.o
    gcc main.c foo.o bar.o -o main

foo: foo.c
    gcc -c foo.c

bar: bar.c
    gcc -c bar.c

clean:
    rm *.o main

CC = gcc//设置自己的变量去替换一些linux命令
main: main.c foo.o bar.o
    $(CC) main.c foo.o bar.o -o main

foo: foo.c
    $(CC) -c foo.c

bar: bar.c
    $(CC) -c bar.c

clean:
    rm *.o main

CC = gcc//设置变量去替换一些linux命令

all: main_max, max_min//不加这一句只编译第一条main_max main_min被跳过,加上之后会去把all里面的都生成

main_max: main_max.c foo.o bar.o
    $(CC) main_max.c foo.o bar.o -o main_max

main_min: main_min.c foo.o bar.o
    $(CC) main_min.c foo.o bar.o -o main_min

foo: foo.c
    $(CC) -c foo.c

bar: bar.c
    $(CC) -c bar.c

clean:
    rm *.o main_max main_min

原文地址:https://www.cnblogs.com/DengSchoo/p/12600811.html