ライブラリは、データと関数がカプセル化されたソフトウェアコンポーネントテクノロジです。ライブラリを使用すると、プログラムをモジュール化できます。
Windowsシステムには、静的リンクライブラリ(.libファイル)と動的リンクライブラリ(.dllファイル)が含まれています。
Linuxは通常、ライブラリファイルを/ usr / libまたは/ libディレクトリに保存します。
Linuxライブラリのファイル名は、プレフィックスlib、ライブラリ名、サフィックスの3つの部分で構成されます。その中で、ダイナミックリンクライブラリはサフィックスとして.soを使用し、スタティックリンクライブラリは通常サフィックスとして.aを使用します。
プログラムで静的ライブラリと動的ライブラリを使用する場合、それらがロードされる順序は異なります。
静的ライブラリのコードは、アプリケーションのコンパイル時にコピーされます。これには、コンパイル時間を節約できるという利点があります。
ダイナミックリンクライブラリの場合、実行開始後にライブラリ関数を呼び出すとプログラムが読み込まれます。
アーカイブとも呼ばれる静的ライブラリの名前は、慣例により.aで終わります。たとえば、標準C言語の関数ライブラリ/usr/lib/libc.aとX11関数ライブラリ/usr/x11/lib/libx11.aです。
arプログラムとgcc-cコマンドを使用して関数を個別にコンパイルする限り、独自の静的ライブラリを簡単に作成して維持できます。
静的ライブラリの作成と使用:
- 静的ライブラリによってエクスポートされた関数をヘッダーファイルで宣言します。
- 静的ライブラリによってエクスポートされた関数をソースファイルで実現します。
- ソースファイルをコンパイルして、実行可能コードを生成します。
- 実行可能コードが配置されているターゲットファイルを静的ライブラリに追加し、静的ライブラリをライブラリファイルが保存されているシステムのデフォルトディレクトリにコピーします。
説明の例を次に示します。mylib.hは、ユーザーが使用できるように静的ライブラリによって提供される関数の宣言を格納し、mylib.cはmylib.hによって宣言された関数を実装します。
/*mylib.h*/
#