2016-04-22 6 views
-2

Моя работа заключается в преобразовании команды Linux в CMake execute_process(COMMAND ...), и между ними есть некоторые различия, поэтому мне нужно понять каждую команду Linux. Но эта команда m4 действительно избивала меня. Команда m4, как показано ниже:Linux: я не могу понять команду `m4`

m4 -Isource/analyzer/ -P <source/analyzer/aParser.m4y> source/analyzer/aParser.by 

Что означает эта команда?

Я прочитал m4 документ раньше, и он сказал, что формат команды m4 является: m4 [option…] [file…], поэтому я думаю, что в команде:

m4 -Isource/analyzer/ -P <source/analyzer/aParser.m4y> source/analyzer/aParser.by 

-Isource/analyzer/ -P является [option...] из m4, и это m4 commad использование < прочитать файл source/analyzer/aParser.m4y как m4 [file...], я понял правильно?

+1

Этот вопрос не показывает никаких усилий или исследований. Downvoting. – usr1234567

+0

[Эта страница] (http://www.gnu.org/savannah-checkouts/gnu/m4/manual/m4-1.4.17/html_node/Command-line-files.html#Command-line-files) явно говорит , что без указания имен входных файлов 'm4' читает * стандартный поток ввода *. Redirectrion '<' предоставляет контент для этого потока. – Tsyvarev

+0

@ Цыварев, спасибо большое, я просто хочу это подтвердить, спасибо за вашу помощь! –

ответ

3

m4 - макропроцессор. Прочтите его documentation (для GNU m4). Это довольно сложная вещь, поэтому я не буду пытаться абстрагировать ее в нескольких предложениях. -P option является префиксов с m4_ встроенных команд так define становится m4_define и т.д. ...

<>) не является вариантом для m4, это общая оболочка redirection.

Конечно, вы также должны изучить документацию cmake (который лично я не люблю много, так как GNU make 4 является достаточно мощным безcmake)

Вы, вероятно, следует провести несколько недель в чтении документации, в том числе Advanced Bash Scripting guide & Advanced Linux Programming (и другие документы, которые я указал здесь).

+0

Я уже прочитал этот документ, и он сказал, что формат команды m4: 'm4 [option ...] [file ...]', мне интересно, как '

+0

Правильно ли я понял? –

+1

Я не понимаю, что вы на самом деле поняли. Я настоятельно рекомендую потратить * недели * на чтение документации. –