В чем разница между makefile и SH-файлом
в чем разница между makefile и SH-файлом. sh (раковина файл скрипта) файл также может работать в месте makefile(означает, что мы можем сделайте то же самое, используя файл оболочки, как makefile может сделать), то что разница между ними. существует какая-либо разница в исполнении или любая стандарт, где мы должны использовать makefile и SH-файл.
один пример этого для компиляции hello.C файл с Makefile и оболочкой файл
shell.sh
param="";
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
{ это чистый файл build }
то же самое с Makefile..
CC=gcc
CFLAGS=-c -Wall
hello: hello.c
$(CC) $(CFLAGS) hello.c -o hello
clean:
rm -rf hello
make
{он будет строить}make clean
{это чистый файл build}
оба файла могут генерировать один и тот же вывод. Этот вопрос, потому что некоторые люди используют Makefile, а некоторые люди используют shell..
1 ответов
make
автоматически проверяет (на основе меток времени), какие цели необходимо переделать, а какие можно оставить нетронутыми. Если вы пишете свой собственный сценарий оболочки, вам придется либо программировать эту логику самостоятельно, либо все ваши компоненты будут перестроены при запуске сценария - даже те, которые не изменились со времени последней сборки.