[プロ技]ユーザーライブラリの利用

woody_1227 オーナー 公式アカウント

コンパイル方法は覚えておこう!
ログインすると、チェック機能を利用できるようになります。
ライブラリとは
・汎用性の高い関数やデータ構造郡を 可能にしたファイル
・コンパイル済みの として提供される。
・ただし、それ単体でプログラムとして動作させることができない。
→ライブラリ自身は実行可能ファイルではない。
・いわば、他のプログラムに何らかの機能を提供する (コード郡)

C言語の例
・printf()やscanf()などの関数群をまとめた、
・ライブラリの種類別に用意された して利用
(stdio.h, math.h, string.h, stdlib.h ... etc)

ライブラリの形式は主に2つ
スタティックリンク・ライブラリ(静的結合ライブラリ)
・ライブラリファイルとオブジェクトファイルは静的に結合
→ライブラリは実行可能ファイルに

ダイナミックリンク・ライブラリ(動的結合ライブラリ)
・ライブラリの をオブジェクトファイルに結合
→実行可能ファイルにはライブラリのリンクコードが埋め込まれる
・ライブラリ自身は に動的にリンクされる

スタティックリンク・ライブラリの特徴
ライブラリの修正、改良における実行可能バイナリへの影響
・修正の恩恵を受けるためには、ソースファイルの が必要
 (修正したライブラリに不具合があっても、 しない限り影響しない)
同一プラットフォームにおける実行可能バイナリの動作
・実行可能バイナリの動作は、他のマシン上でも
実行可能バイナリのファイルサイズ
・ライブラリ自身のコードが組み込まれるので、サイズは なる

ダイナミックリンク・ライブラリの特徴
ライブラリの修正、改良における実行可能バイナリへの影響
・ライブラリの修正の恩恵を受けるために、特別な事をする必要は
・ライブラリの不具合は、全ての実行可能バイナリに
同一プラットフォームにおける実行可能バイナリの動作
・実行可能バイナリの動作は、他のマシン上では
 (ライブラリのバージョンが違う、必要とされるライブラリが存在しないなど)
・複数のバージョンのライブラリが していると、動作が特定できない
実行可能バイナリのファイルサイズ
・ライブラリのコードは含まれないので、サイズは

ヘッダファイル :xxx.h
(データ構造と操作関数の関数プロトタイプ宣言を記述)
ライブラリのソースファイル :xxx.c
(操作関数の定義)
ライブラリのバイナリファイル
 スタティックリンク・ライブラリ :libxxx.a
 ダイナミックリンク・ライブラリ :libxxx.so

スタティックリンク・ライブラリの作り方
(ライブラリ名:xxx, メインプログラム名:xxx-main)
①xxx.cから を作る
$ が生成される
から を作る
$

ダイナミックリンク・ライブラリの作り方
xxx.cから を作る
$

実行ファイルの作り方
$
※「.」は、ライブラリのパス