C ++は C言語に似ており、実行する前にコンパイルしてリンクする必要があります。「C言語コンパイラ」のトピックでは、VS、Dev C ++、VC 6.0、Code :: Blocks、C-Free、GCC、Xcode、およびその他の一般的なIDEまたはコンパイラについて説明しました。C言語プログラムの実行に加えて、次のことができます。 C ++プログラムの場合も実行します。手順は同じなので、ここでは繰り返しません。読者は、C ++ソースファイルのサフィックスとGCCのg++
コマンドに注意する必要があります。
次の図は、C / C ++コード生成実行可能ファイルのプロセスです。
C言語のソースファイルのサフィックスは非常に統一されており、それらはすべて異なるコンパイラにあり.c
ます。C ++ソースファイルのサフィックスは少し紛らわしいです。コンパイラが異なれば、サフィックスも異なります。次の表は簡単な要約です。
翻訳者 | Microsoft Visual C ++ | GCC(GNU C ++) | ボーランドC ++ | UNIX |
---|---|---|---|---|
サフィックス | cpp、cxx、cc | cpp、cxx、cc、c ++、C | cpp | C、cc、cxx |
UNIXは、初心者にはほとんど使用されない高価な商用オペレーティングシステムです。MicrosoftVisualC++は、VC6.0およびVSで使用されるMicrosoftのC / C ++コンパイラです。.cpp
より一般的で標準化されているC ++ソースファイルとしてサフィックスを使用することをお勧めします。
C言語の開発経験があるため、ソースファイルのサフィックスが.cpp
Iに設定されている限り、VS、Dev C ++、VC6.0、C-Free、Xcodeなどの一般的なIDEでC ++プログラムを簡単にコンパイルできます。読者は制御するのに障害がないだろうと信じています。このセクションでは、LinuxGCCの使用に焦点を当てます。
C言語では、gcc
コマンドを使用してCプログラムをコンパイルおよびリンクします。たとえば、単一のソースファイルをコンパイルするには、次のようにします。
gcc main.c
複数のソースファイルをコンパイルします。
gcc main.c module.c
C ++プログラムをコンパイルする場合、gcc
コマンドも使用でき-lstdc++
ますが、オプションを追加する必要があります。そうしないと、リンクエラーが発生します。たとえば、単一のソースファイルをコンパイルするには、次のようにします。
gcc main.cpp -lstdc++
複数のソースファイルをコンパイルします。
gcc main.cpp module.cpp -lstdc++
gcc
このコマンドは、リンク時にデフォルトでCライブラリを使用し、-lstdc++
C ++ライブラリはオプションが追加された場合にのみ使用されます。
ただしg++
、GCCにはC ++プログラムのコンパイルに特別に使用されるコマンドがあり、C ++開発者の大多数もこのコマンドを使用しています。g++
コマンドとgcc
コマンドは同じ方法で使用されます。たとえば、単一のソースファイルをコンパイルします。
g++ main.cpp
複数のソースファイルをコンパイルします。
g++ main.cpp module.cpp
-o
オプションを使用して、実行可能ファイルの名前を指定します。
g++ main.cpp -o demo
./demo
g++
コマンドを理解するには、GCCの歴史から始める必要があります。GCCはGUN組織によって開発されました。最初は、C言語のみをサポートし、純粋なC言語コンパイラでした。その後、GNU組織は、GCCをより強力にするためにより多くのエネルギーを費やし、C ++、Objective-C、Fortran、およびJava。 他の言語のサポートを待ちます。この時点で、GCCはコンパイラスイート(スイート)になります。これは、すべてのコンパイラの総称です。
このプロセスでは、gcc
コマンドはそれに応じて調整されています。コマンドはC言語をサポートするだけでなく、デフォルトでC言語をサポートします。パラメーターを追加した後、他の言語もサポートできます。つまり、gcc
さまざまなパラメータに従ってさまざまなコンパイラまたはリンカを呼び出す一般的なコマンドです。
しかし、ユーザーがパラメータを指定せすることだけではなく、学習のコストを増大させる愚かな振る舞いは、ですが、また、操作がより複雑になります。だから、GCCは、後のような、異なる言語の異なるコマンド、導入g++
Cをコンパイルするためのコマンド++やgcj
Javaのコンパイルするためのコマンド、gccgo
コマンドをGo言語のコンパイルに使用されます。
将来LinuxGCCを使用するときは、g++
コマンドを使用してC ++プログラムをコンパイルすることをお勧めします。これはより簡潔で標準化されています。