Вот разбивка команды. Сначала исходная команда, для ссылки
g++ -Wall -I/usr/local/include/thrift *.cpp -lthrift -o something
Теперь, для разбивки.
g++
Это - фактическая команда команды, g++
. Это - программа, которая выполняется. Вот, каково это из страницы справочника:
gcc - Проект C GNU и компилятор C++
Это - компилятор для программ, записанных в C++ и C. Это берет C, или C++ кодируют, и превращает его в программу, в основном.
-Wall
Эта часть заставляет его отобразить все предупреждения при компиляции. (Предупредите Все),
-I/usr/local/include/thrift
Эта часть говорит g++
использовать /usr/local/include/thrift
как каталог для получения заголовочных файлов от. И с вопросом о том, поместить ли пространство после меня или нет. Можно сделать это так или иначе. Путем опции (опции являются вещами в команде после -
знаки. -Wall
и -I
опции), анализируются, позволяет Вам помещать пространство или нет. Это зависит от Вашего персонального предпочтения.
*.cpp
Эта часть передает каждый .cpp
файл в текущем каталоге к g++
команда.
-lthrift
Это может также быть -l thrift
. Это говорит g++
искать thrift
библиотека при соединении.
-o something
Это говорит это это, когда все компилируется для размещения исполняемого файла в файл something
.
Обычно необходимо искать документацию команды в ее странице справочника: man g++
. В случае программного обеспечения GNU, такого как GCC, Вы будете обычно находить больше подробной документации в информационном формате, или в HTML на домашней странице программного обеспечения.
C (и C++) компиляторы имеют несколько специфический синтаксис, который не учитывает обычные конвенции для опций (опции прибывают перед операндом, существует дополнительное пространство между опцией и ее аргументом, …). Пространство после -I
является на самом деле дополнительным, но -Wall
потребности быть одним словом.
Вот быстрый обзор той команды (взгляд в документации для деталей):
g++
запустите компилятор C++-Wall
испустите предупреждения на подозрительном коде (-Wall
на самом деле означает важные предупреждения только, не все возможные предупреждения),-I/usr/local/include/thrift
посмотрите в том каталоге для, включают файлы (#include
директивы)*.cpp
скомпилируйте эти файлы-lthrift
ссылка с этой библиотекой (это ищет libthrift.a
). Отметьте это -l
должен прибыть после файлов Вы компилируете, потому что -l
означает, “если существуют какие-либо неопределенные символы в этой точке, ищут определения в specificed библиотеке”-o something
поместите скомпилированный и связанный вывод в указанный файл