この記事でわかること
g++コマンドとarコマンドを利用して静的ライブラリを生成する方法について紹介します。
静的ライブラリを生成するには?
次の手順で。静的ライブラリを作成することができます。
- ソースファイルをコンパイルしてオブジェクトファイルを作成する
- 複数のオブジェクトファイルをまとめて静的ライブラリを作成する
1. ソースファイルをコンパイルしてオブジェクトファイルを作成する
オブジェクトファイルを作成するには、g++コマンドを利用します。
g++コマンドは、コンパイルからリンクまで行え、中間ファイルや実行ファイルを作成することができます。
-cのオプションを利用することで、コンパイルだけ実行して、中間ファイルであるオブジェクトファイルを作成することができます。
例えば、example.cppというソースファイルがある場合、
g++ -c example.cpp
というコマンドで、example.oというオブジェクトファイルが生成されます。
2. 複数のオブジェクトファイルをまとめて静的ライブラリを作成する
複数のオブジェクトファイルをまとめるのには、arコマンドを利用します。(1ファイルでもOKです。)
例えば、先ほど作成したexample.oというオブジェクトファイルから、libexample.aという静的ライブラリを作成する場合、
ar rcs libexample.a example.o
というコマンドで、libexample.aが生成されます。
静的ライブラリの利用方法
静的ライブラリを使用するプログラムをコンパイルし、静的ライブラリとリンクすることで、実行ファイル生成します。
例えば、main.cppというプログラムがある場合、
g++ -static main.cpp -LC:lib -lexample -o main.exe
というコマンドでmain.exeという実行ファイルが生成されます。
ここで、-LC:libはlibの部分位静的ライブラリのディレクトリを指定し、
-lexampleは静的ライブラリの名前(libexample.aのlibと.aを除いた部分)を指定します。
以上が、g++で静的ライブラリを生成する方法でした。