基本

ライブラリや実行ファイル中にあるシンボルの表示

nm <filename>

外部シンボルのみを表示させたい場合は次の通り(こっちの方をよく使う)

nm -g <filename>

共有ライブラリ(Shared Library)の作成

関数func1, func2, func3を共有ライブラリにする

まず、各関数のファイルを作る

func1.c
func2.c
func3.c

ヘッダファイルも作っておく。

<functions.h>
int func1();
int func2();
int func3();

ライブラリを作る。

gcc -shared func1.c func2.c func3.c -o libfunctions.so

これを使うプログラムは、

<driver.c>
#include "functions.h"
int main() {
  // 処理
  return 0;
}

として、

gcc driver.c -o driver ./libfunctions.so

とすれば、実行ファイルdriverができまする。 TurboCの時はライブラリアンがあって、ライブラリの中から関数を削除したり追加できたんだが、これはどうすればいいのかしらん。\ ライブラリのMakefileに依存関係を書いておいて、それを編集するのかな。

実験として、関数内に適当なメッセージを表示する文を追加して、再度共有ライブラリを作って、driverを動かしてみると、ちゃんと\ 変更が反映された。

当たり前だけど、ちゃんと動くとうれしい。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS