Новое в Linux,Я думаю, что это будет завершено сразу после составления компиляции.,Неожиданно возникли большие проблемы с результатами, полученными при компиляции.,оказатьсяда Как использовать make, make all и make Чистота – это неправильно.
make
、make all
и make clean
используется make
Общие команды при построении систем. Они используются для кода в проекте компилироватьиуправлять. различия в функциях для каждой из следующих команд:
1、make
make
По умолчанию команда будет искать файлы в текущем каталоге. Makefile
или makefile
документ,И выполните первую цель в файле. Если первая цель зависит от других целей,make
Эти зависимые цели будут построены в первую очередь.make
Постараюсь компилировать слинковать весь проект.Makefile
Первая цель – all
,нобегать make
будет выполнено автоматически make all
。2、 make all
make all
обычно используется длякомпилироватьи Постройте весь проект。all
является общей целью, обычно в Makefile
Все необходимые файлы четко определены в компилируемом проекте.Makefile
может включать в себя следующее:all: prog1 prog2
prog1: ...
prog2: ...
бегать make all
будет строиться последовательно prog1
и prog2
。
3、make clean
make clean
для проектов по уборке,Обычно удаляет все файлы, созданные предыдущим процессом сборки.,нравитьсяобъектдокумент(.o
)、компилировать Продукты и т. д.。Makefile
может включать в себя следующее:clean:
rm -f *.o myProgram
бегать make clean
удалит все объектные файлы программы myProgram
。
так:
make
:Проект сборки по умолчанию,в соответствии с Makefile
Первая цель выполнена.make all
:прозрачный Постройте весь проект,Обычнода Makefile
стандартные цели, определенные в .make clean
:проект очистки,Удалить файлы, созданные во время предыдущих сборок,Подготовьте чистую среду сборки.Поясним на конкретном примере make
、make all
и make clean
из Функцияиразница。гипотезау нас естьпростойCязыковой проект,Содержит два источникадокумент:main.c
и helper.c
,и головадокумент helper.h
。мы создадим Makefile
Приходите на проект компилировать руководство.
Структура каталогов следующая:
/каталог проекта
|-- main.c
|-- помощник.c
|-- помощник.h
|-- Makefile
гипотеза main.c
Содержание следующее:
#include <stdio.h>
#include "helper.h"
int main() {
printf("Hello, World!\n");
helperFunction();
return 0;
}
helper.c
Содержание следующее:
#include <stdio.h>
#include "helper.h"
void helperFunction() {
printf("Helper function called.\n");
}
helper.h
Содержание следующее:
void helperFunction();
простой Makefile
Это может выглядеть так:
CC=gcc
CFLAGS=-I.
# цель по умолчанию
all: myProgram
# Создайте идеальную программу
myProgram: main.o helper.o
$(CC) -o myProgram main.o helper.o
# компилировать main.c
main.o: main.c
$(CC) -c main.c $(CFLAGS)
# компилировать helper.c
helper.o: helper.c
$(CC) -c helper.c $(CFLAGS)
# Очистить файлы сборки
clean:
rm -f *.o myProgram
Итак, как использовать make, make все и сделать А как насчет чистоты? Шаги следующие:
make
или make all
。это будеткомпилироватькод и генерировать myProgram
。./myProgram
Просмотрите результат.make clean
Очистите файлы сборки.проиллюстрировать:
сделать или сделать все
make
или make all
Волякомпилировать main.c
и helper.c
,а затем связать ихобъектдокументчтобы создать исполняемый файлдокумент myProgram
。all
да Makefile
цель по умолчанию, определенная в , в то время как make
Первая цель выполняется по умолчанию.make clean
make clean
Воляудалитьвсекомпилироватьгенерироватьизобъектдокумент(.o
файл) и исполняемый файл myProgram
。