makefile和sh文件有什么区别

Vin*_*dar 10 c linux shell sh

makefile和sh文件有什么区别.sh(shell脚本文件)文件也可以在makefile的地方工作(意思是我们可以用makefile这样的shell文件做同样的事情)那么它们之间有什么区别.有任何执行差异或任何标准,我们必须使用makefile和sh文件.

一个示例使用Makefile和shell文件编译hello.c文件

shell.sh

param="$1";

CC="gcc"

CFLAGS="-c -Wall";

if [ "$param" == "clean" ];

then

 rm -rf hello

else

$CC $CFLAGS hello.c -o hello

fi
Run Code Online (Sandbox Code Playgroud)
  1. ./shell.sh {将构建hello.c文件}
  2. ./shell.sh clean {这将清理构建文件}

与Makefile相同的事情..

CC=gcc

CFLAGS=-c -Wall

hello: hello.c
        $(CC) $(CFLAGS) hello.c -o hello

clean:
        rm -rf hello 
Run Code Online (Sandbox Code Playgroud)

make {它将构建}
make clean{它将清理构建文件}

两个文件都可以生成相同的输出 这个问题因为有些人使用Makefile而有些人使用shell ..

sep*_*p2k 16

make自动检查(根据时间戳)需要重新制作哪些目标以及哪些目标可以不受影响.如果您编写自己的shell脚本,则必须自己编写此逻辑,否则在运行脚本时将重建所有组件 - 即使是自上次构建以来未更改的脚本.