c - makefile和sh文件有什么区别

标签 c linux shell sh

makefile和sh文件有什么区别。 sh( shell 脚本文件)文件也可以在 makefile 的地方工作(意味着我们可以 使用 shell 文件做同样的事情,就像 makefile 可以做的那样)然后是什么 他们之间的区别。有任何执行差异或任何 我们必须使用 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 { 这将清理构建文件 }

与 Makefile 相同..

CC=gcc

CFLAGS=-c -Wall

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

clean:
        rm -rf hello 

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

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

最佳答案

make 自动检查(基于时间戳)哪些目标需要重新制作,哪些可以保持不变。如果您编写自己的 shell 脚本,您要么必须自己编写此逻辑,要么在您运行脚本时重新构建所有组件 - 即使是那些自上次构建以来未更改的组件。

关于c - makefile和sh文件有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22578909/

相关文章:

c - 赋值类型不兼容

android - 编译 Android Studio Vulkan 示例

bash - 将一个子字符串替换为 shell 脚本中的另一个字符串

linux - 对临时文件的 sed 权限被拒绝

c - 在 Linux 中使用 fork() 和 exec() 时如何防止创建僵尸进程?

c - 在c中动态分配二维数组错误

c - 在没有数组的情况下读取整数和/或字符

java - 设置 java 主页

linux - 有效地在 ELF 文件中添加新部分

shell - 存储 shell 脚本密码的最佳方法是什么?