HobNote
C言語関係[03]
since 2015.09.23
last update 2016.03.12



実行ファイルの依存する共有ライブラリを調べる

例えばlsの依存する共有ライブラリを調べるには、



静的ライブラリを作る

静的ライブラリは、arコマンドを使って複数のオブジェクトファイル(拡張子:o)を
書庫化したファイル(拡張子:a)にまとめたものである。

お試しで静的ライブラリ用に以下(stlib1.c, stlib2.c, stlib1and2.h)のようなソースを
テスト用のプログラム(stlib_test.c), そのMakefileを作ってみる。
ディレクトリ構成はm以下のようにする。

で、これからコンパイルしてオブジェクトファイルを生成する。
これらのオブジェクトファイルをarコマンドで静的ライブラリにする。
Makefileを作る。
テスト用のプログラム(stlib_test.c)をいろいろ変えてファイルサイズを見てみる。



共有ライブラリを作る

共有ライブラリは、静的ライブラリと異り共有ライブラリ内の関数を使ったプログラムをコンパイルするとき
その関数は、プログラム内に含まれず実行するときに呼び出されることになる
Linuxの場合は、拡張子がso(shared object)となるファイルが共有ライブラリである
gccで共有ライブラリを作成する手順を例を使ってざっくり記しておく

共有ライブラリとしてtest_func.cからtest_lib.soを作ってみる

soファイルを作る。コンパイル手順は作り方1でも作り方2でもいい


ここで

共有ライブラリの関数を使った実行プログラムhello_prn.c

hello_prn.cをコンパイルする。

ライブラリパスを通して実行してみる


参考にさせていただいたサイトのURL