タグ

libraryに関するodawaraのブックマーク (4)

  • 2004-09-18

    linuxのスタティックライブラリは「lib*.a」という名前でなければならない。 スタティックライブラリの作成 cd lib gcc -c ../src/my_static_lib.c ar rsv libmystaticlib.a my_static_lib.oコンパイルはオブジェクトの構築のみ。リンクはしない。 それを ar でアーカイブ化する。 オプションの r は追加、又は更新、 s は索引の作成。v は詳細メッセージの表示。 アーカイブ名「libmystaticlib.a」がライブラリ名となる。 クライアントとのリンク gcc client.c -Llib -lmystaticlibライブラリの位置を -L で指定し、-l でライブラリ名を指定するだけでok. linuxの共有ライブラリは「lib*.so」という名前でなければならない。 実際にはバージョンやリビジョンをふくむ名

    2004-09-18
  • 共有ライブラリの説明

    3. 共有ライブラリ共有ライブラリは、プログラム起動時にロードされるライブラリです。 共有ライブラリが適切にインストールされると、その後に起動される全てのプログラムは、自動的にその新しい共有ライブラリを使うことになります。 実際には、これよりもはるかに柔軟で洗練されています。なぜなら、Linux における共有ライブラリの実現方法のおかげで、次のことが可能となるからです。 ライブラリを更新しながらも、そのライブラリの古くて後方互換性のないバージョンを使いたいというプログラムを、引き続きサポートすることができる特定のプログラムを実行するとき、特定のライブラリ、もしくはライブラリ内の特定の関数でさえもオーバーライドすることができる既存のライブラリを使用してプログラムが動いている間にも、これら全てをおこなうことができる 3.1. 約束ごとこれらの望ましい特性すべてを共有ライブラリがサポートするため

  • 共有ライブラリの作成 - hakeの日記

    前々から疑問に思っていたsoなファイルってどうやって作るんだろう?という疑問について調べてみました。ググったところこちらに解りやすい説明があったので実験してみる。環境は先日入れたzgcc42です。 ソースファイルは以下 ----main.cpp #include <stdio.h> #include "add.h" int main(){ int a = 2; int b = 3; int c; c = add(a,b); printf("%d + %d = %d\n", a, b, c); return 0; } -----add.h int add(int a, int b); -----add.cpp #include "add.h" int add(int a, int b){ return a + b ; } とりあえず普通にコンパイル。a.outができて実行できればおっけー $

    共有ライブラリの作成 - hakeの日記
  • ライブラリ

    スタティックライブラリの作成 1. はじめに 共通の関数を複数のプログラムで使い回すとき、ライブラリにした方が楽。 ということで挑戦。 2. 次に とりあえず腕ならし。簡単な関数をつくってみる。 あっさりできてしまった。 ソースは下。必要最低限しか書いていないから、見れば分かるでしょう。 Makefile error.c error.h util.c util.h main.c lib.tar.gz‥上のファイル全部 3. 一応説明 error.c、util.cからライブラリをつくり、名前はlibutil.aとする。 そして、それとmain.cをいっしょにコンパイルする。それだけ。 手でコンパイルするとすると、以下のようになる。 % gcc -c error.c % gcc -c util.c % ar r libutil.a error.o util.o % ranlib libutil

  • 1