linux怎么只编译修改的文件
linux怎么只编译修改的文件详细介绍
在 Linux 里,若要仅编译修改过的文件,可借助不同的工具与方法达成此目的,下面为你介绍几种常见的方式。
1. 使用
make工具
make是一款广泛使用的编译自动化工具,它依靠 Makefile 文件来明确文件之间的依赖关系以及编译规则。make会对比文件的修改时间,仅对修改过的文件进行重新编译。
步骤
- 编写 Makefile:
makefile
CC gcc
CFLAGS -Wall -g
TARGET myprogram
SRCS main.c func1.c func2.c
OBJS SRCS.c.o
TARGET
(TARGET) OBJS
CC CFLAGS -o
%.c
CC CFLAGS -c -o
rm -f OBJS TARGET
- 运行
make命令:在终端中输入make,make会自动检查文件的修改时间,仅对修改过的源文件进行重新编译。
bash
2. 使用
cmake工具
cmake是一个跨平台的编译配置工具,它能够生成不同平台下的 Makefile 或其他编译脚本。cmake结合make使用,同样可以只编译修改过的文件。
步骤
- 编写 CMakeLists.txt:
cmake
MyProject
myprogram main.c func1.c func2.c
- 生成 Makefile:
bash
buildbuild
cmake
- 编译项目:
bash
之后每次修改源文件后,只需在build目录下再次运行make命令,make会根据文件修改时间仅编译修改过的文件。
3. 使用
ninja构建系统
ninja是一个快速的构建系统,它通常和cmake结合使用,相比传统的make,ninja在处理大量文件时速度更快。
步骤
- 编写 CMakeLists.txt:与使用
cmake时相同。 - 生成 Ninja 构建文件:
bash
buildbuild
cmake Ninja
- 编译项目:
bash
ninja
912ninja
每次修改源文件后,只需在build目录下再次运行ninja命令,ninja会只编译修改过的文件。