Команда вставить
объединяет строки из нескольких входных файлов в один файл с несколькими столбцами, по одному из каждого файла.
Она может быть использована для объединения строк из одного и того же файла в файл с несколькими столбцами, таким образом, чтобы последовательные строки заканчивались последовательными столбцами в выходном файле.
Идея заключается в том, чтобы использовать по одному входу несколько раз для каждой строки, а не несколько входов.
Лучше всего читать со стандартного входа, и используя -
, который представляет собой стандартный вход в качестве входного файла, несколько раз:
читает имя файла
на стандартный вход
-d ' '
устанавливает разделитель между столбцами в пробел, а не по умолчанию, в табуляцию. -
представляет собой двухкратный стандартный входной файл один и два, поэтому для каждой строки стандартный вход читается два раза, создавая первый и второй столбец. Make-файлы следуют этому формату (Make-файлы всегда должны использовать табуляцию вместо пробелов, поскольку это требуется в большинстве (если не во всех) реализациях make
):
target: dependencies
operations to build target
make
пытается построить, когда вы вызываете ее без аргументов. В этом Makefile у вас есть две цели:
Поскольку lex.yy.c
- это зависимость, необходимая для сборки test
, сначала он будет построен из test.l
. Как только он будет сгенерирован, можно будет скомпилировать тест
. В основном, make
...:
тест
. lex.yy.c
не существует (или был обновлен), его нужно сначала построить. lex.yy.c
. Выполняется сборка flex test.l
: lex.yy.c
. теста
соблюдены. Выполняется g ++ lex.yy.c -ll -o test
. тест
создан. Дополнительная информация: Для получения дополнительной информации о make-файлах я бы порекомендовал Платформу разработки Linux от Rafeeq Ur Rehman . Глава 4: Использование GNU Make .
Сначала вызывает целевой test
, но lex.yy.c
является зависимостью.
Поэтому, прежде чем выполнять реальное выполнение, сделайте анализ ваших целей и всех зависимостей.
Первая цель - это test
, но перед запуском его выполнения вызывается lex.yy.c
.