g++コンパイルc++ファイル

3494 ワード

次はhelloという名前です.cppのc++コードファイル:
/* hello.cpp */
#include 
int main(int argc,char *argv[])
{
    std::cout << "hello!!" << std::endl;
    return(0);
}

linuxで次のコマンドを実行してファイルをコンパイルします.
g++ hello.cpp

コンパイラg++は、コマンドラインで指定されたファイルの接尾辞名cppをチェックすることで、C++ソースファイルであることを認識することができる.コンパイラのデフォルトの動作:ソースファイルをコンパイルしてオブジェクトファイル(object file)を生成し、オブジェクトファイルとlibstdc++ライブラリの関数をリンクして実行可能プログラムを得る.次に、オブジェクトファイルを削除します.コマンドラインに実行可能プログラムのファイル名が指定されていないため、コンパイラはデフォルトのa.outを採用します.g++のパラメータは、-o-l-c-E-S(1)-oパラメータが一般的に生成アプリケーションの名前を変更するために使用され、以下のコマンドでhelloという名前の実行可能プログラムを生成します.
g++ hello.cpp -o hello

(2)-lパラメータlib接頭辞と.so接尾辞を追加することで、コンパイルコードに必要なリンクのライブラリファイルを追加し、標準ライブラリでライブラリファイルを検索します.以下のコードはlibopencv_highhui.soライブラリファイルを追加することを示します.
g++ hello.cpp -o hello -lopencv_highhui

(3)-cパラメータは、コンパイラにソースコードをコンパイルしてリンクを実行しないように伝え、結果をオブジェクトファイルとして出力します.ファイルのデフォルト名は、ソースファイル名と同じですが、接尾辞を.oに変更します.次のコードは、hello.oファイルの生成を示します.
g++ -c hello.cpp

(4)-Eパラメータは、g++がソースコードをコンパイルプリプロセッサで処理した後、他の動作を実行しないことを示します.次のコマンドは、ソースファイルhello.cppを前処理し、結果を標準出力に表示します.
g++ -E hello.cpp

(5)-Sパラメータは、コンパイラがプログラムをアセンブリ言語にコンパイルし、アセンブリ言語コードを出力して終了することを示します.次のコマンドは、C++ソースファイルからアセンブリ言語ファイルhello.sを生成します.
g++ -S hello.cpp

(6)複数の.cppファイルをコンパイルする:次のコードは3つの.cppファイルを1つの実行可能ファイルにリンクし、helloと命名する.
g++ hello1.cpp hello2.cpp hello3.cpp -o hello