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
./shell.sh
{将构建hello.c文件} ./shell.sh clean
{这将清除构建文件} 与Makefile相同......
CC=gcc
CFLAGS=-c -Wall
hello: hello.c
$(CC) $(CFLAGS) hello.c -o hello
clean:
rm -rf hello
make
{它将构建}
make clean
{它将清理构建文件}
两个文件都可以生成相同的输出。 这个问题是因为有些人使用Makefile而有些人使用shell ..
答案 0 :(得分:13)
make
自动检查(根据时间戳)需要重新制作哪些目标以及哪些目标可以不受影响。如果您编写自己的shell脚本,则必须自己编写此逻辑,否则在运行脚本时将重建所有组件 - 即使是自上次构建以来未更改的脚本。