タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

cに関するcoekのブックマーク (4)

  • コンピューター:C言語講座:共有ライブラリについて

    コンピューター:C言語講座:共有ライブラリについて 概要 今回はC言語講座の読者の方からの提案で、共有ライブラリを取り上げます。 共有ライブラリは、静的なライブラリが実行形式に合体されるかたちでリンクされるのと違い、実行時に動的にリンクされるものという定義で、しかも他のプロセスと共有するかたちで実行時にリンクされて使われるものです。UNIXでは、プロセス間でファイルを共有するというと、mmap()を思い浮かべますが、まさにこれを使用し、共有ライブラリをマップして動作するものです。 一般のライブラリは、arコマンドによりアーカイブされて、要するにオブジェクトファイルを固めてつくるようなもので、普通は拡張子として「.a」を使用します。共有ライブラリはarコマンドは使用せず、ccコマンドから実行されるldコマンドが作成します。一般的に拡張子として「.so」を使用します。 ccあるいはldコマンド

    coek
    coek 2010/12/16
  • ライブラリの基礎知識

    2000.03.11 初版 ライブラリは、再利用を目的として作成されたコンパイル済みの関数の集合です。 linux以外のOS別 Shared Library の構築・使用ガイドは、 http://www.dais.is.tohoku.ac.jp/~kabe/vsd/dynald.htmlへどうぞ。 ライブラリの名前の先頭は、lib から始まります。Linux のライブラリには次の3種類あります。 スタティック 共有 ダイナミック スタティックライブラリは、コンパイル時にコードがプログラムに組込まれます。 モジュールサイズが大きくなりますが、別のマシンにバイナリで配布したときに そのライブラリがなくても動作します。 .a で終わるファイルです。 共有ライブラリは、プログラムの実行時にロードされます。マシンによっては、 その共有ライブラリがなかったり、バージョンが違ったりして、動作しないことが

    coek
    coek 2010/12/16
  • - 株式会社エスロジカル - 技術ドキュメント UNIX の C言語:gccのstaticオプション

    技術ドキュメント目次 -> UNIX の C言語 -> gccのstaticオプション 技術ドキュメントは、2002~2004年頃に作成したものが多いです。 内容が古くなっていることもあるかと思いますが、ご了承ください。 【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。 ◆ gccのstaticオプション(スタティックリンクでコンパイル) Unix の C言語で開発したプログラムをいくつかの環境で稼動させる際、 環境によってライブラリのインストール状況が異なっていると、 それぞれの環境ごとでの動作確認が必要になったりで、 少々悩ましい場合があるかもしれません。 (あまり、そのようなことは実際には少ないかと思いますが。) そのようなとき、 gcc に -static オプションを付加してコンパイルを行うと、 実行バイナリにライブラリが組み込まれ

    coek
    coek 2010/12/16
  • [C 言語]ダイナミックリンクライブラリ(共有ライブラリ)の作成 « イイ!! プログラミング Blog

    ライブラリの作成 まず、SharedObjectとするプログラムを書く。sayhello.cとして保存します。 #include <stdio.h> void sayhello(void) { printf("Hello\n"); } gccを利用してSharedObjectとしてコンパイルします。 $ gcc -fPIC -shared sayhello.c -o libsayhello.so #libなんたら.soという名前で作成 # fileコマンドでSOであることを確認 $ file libsayhello.so libsayhello.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), not stripped

    coek
    coek 2010/12/16
  • 1