почему некоторые аргументы командной строки и их теги вместе? - PullRequest
0 голосов
/ 16 октября 2019

Я не знаю точного имени -a в ls -a, я просто называю его тегом в заголовке.

Очень часто вы передаете значение (file.c)на аргумент:

gcc -c file.c

Что меня интересует, так это код такого типа

gcc -fPIC -c file1.c

Почему -f и PIC вместе?

Поскольку PIC этовстроенный контент?

Ну, я видел такой код:

ldid -Stest.xml gdb  

-S и аргумент (test.xml) вместе.

Я думаю, что вполне разумно написать так:

ldid -S test.xml gdb  

Так почему это?

Это историческая проблема?

Есть внутренняя причина или это просто предпочтение программиста.

1 Ответ

0 голосов
/ 16 октября 2019

Аргументы, которые вы сравниваете, несколько отличаются друг от друга.

Аргумент -fPIC является аргументом в целом, вы не можете просто заменить часть PIC любой другой строкой и ожидать еена работу.

Аргументы (обычно это имя файла) имеют в значительной степени произвольную форму, поэтому существует разделение.

Существуют промежуточные аргументы, например, -march=..., где ... может бытьзаполняется из набора известных значений. В некоторых программах и для некоторых опций = заменяется пробелом. Примером этого является параметр -o, который устанавливает имя выходного файла, например, gcc, который используется следующим образом:

gcc main.cpp -o output

Таким образом, согласованность оставляет желать лучшего в любом направлении, на которое вы смотрите.

Большинство интерфейсов даже не соответствуют Соглашениям POSIX :

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...