makefile和sh文件有什么区别

时间:2014-03-22 14:32:31

标签: c linux shell sh

makefile和sh文件有什么区别。 SH(壳    脚本文件)文件也可以在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
  1. ./shell.sh {将构建hello.c文件}
  2. ./shell.sh clean {这将清除构建文件}
  3. 与Makefile相同......

    CC=gcc
    
    CFLAGS=-c -Wall
    
    hello: hello.c
            $(CC) $(CFLAGS) hello.c -o hello
    
    clean:
            rm -rf hello 
    

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

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

1 个答案:

答案 0 :(得分:13)

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