このLinuxコマンドの機能は何ですか?

このLinuxコマンドの機能は何ですか?
g++ -Wall -I/usr/local/include/thrift *.cpp -lthrift -o something

これはApache Thriftのウェブサイトからのものです。

また、-I/usr は -I /usr? でなければなりません。

答え1

以下はコマンドの分析です。 1つ目は参照用のオリジナルコマンドです。

g++ -Wall -I/usr/local/include/thrift *.cpp -lthrift -o something

今故障に入ります。

g++

これは実際のコマンドコマンドですg++。実行中のプログラムです。マニュアルページには次のように記載されています。

gcc - GNUプロジェクトCおよびC ++コンパイラ

C++ と C で書かれたプログラム用のコンパイラです。デフォルトでは、CまたはC ++コードを取得してプログラムに変換します。

-Wall

この部分を使用すると、コンパイル時にすべての警告が表示されます。 (全員に警告)

-I/usr/local/include/thrift

この部分は、ヘッダファイルをインポートするディレクトリとしてg++使用するように指示します。/usr/local/include/thriftI の後にスペースを追加するかどうかに関する質問もあります。どちらでもできます。オプション(オプションは-コマンドの記号の後にあり、-Wallオプション-Iです)はスペースを入れるかどうかを許可する方法で解析されます。これは個人的な好みによって異なります。

*.cpp

この部分は、.cpp現在のディレクトリ内のすべてのファイルをg++コマンドに渡します。

-lthrift

これも機能します-l thrift。リンク時にライブラリを検索するように求められますg++thrift

-o something

これは、実行可能ファイルをファイルに入れるためにすべてがコンパイルされた時点を示しますsomething

答え2

一般的に言えば、次のコマンドのドキュメントを見つける必要があります。マニュアルページ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
  • -o somethingコンパイルおよびリンクの出力を指定されたファイルに配置します。

関連情報