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/thrift
I の後にスペースを追加するかどうかに関する質問もあります。どちらでもできます。オプション(オプションは-
コマンドの記号の後にあり、-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
コンパイルおよびリンクの出力を指定されたファイルに配置します。