11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Linux基礎(ライブラリについて)

Posted at

#ライブラリとは
よく使用されるプログラムの共通部分を抜き出して、他のプログラムから利用できるようにしたもの。

ライブラリ 説明
静的ライブラリ プログラムの作成時にその実行ファイル内に組み込まれたライブラリ
・メリット|一つのプログラムだけで動作させられ、別環境で動作可
・デメリット|プログラムのサイズが大きくなる
共有ライブラリ プログラムの実行時にロードされて、複数のプログラム間で共有されるライブラリ
・メリット|プログラム全体のサイズが小さくなる
デメリット|プログラム実行時に適切に設置されたライブラリが必要

#スタティックリンクとダイナミックリンク
プログラムからライブラリの機能を呼び出すことをリンクと呼び、リンクには以下の2種類がある。

ライブラリ 説明
スタティックリンク プログラム作成時に、あらかじめライブラリの機能をプログラム本体に組み込む方法。
この時に組み込まれるライブラリは静的ライブラリ
ダイナミックリンク プログラムの実行時に、ライブラリの機能を呼び出す方法。
この時に呼び出されるライブラリを共有ライブラリ

#必要となる共有ライブラリの確認
共有ライブラリは、「/lib」または「/usr/lib」に配置されており、libtinfo.so.5のように「lib~.so~」という名前が付けられる。実行ファイルが必要とする共有ライブラリは「ldd」コマンドで確認することができる。例えば、moreコマンド(/bin/more)が必要な共有ライブラリは、「ldd/bin/more」で確認することができる。

#必要となる共有ライブラリの検索
「lib」や「/usr/lib」ディレクトリ以外の場所に共有ライブラリを設置する場合、その共有ライブラリの検索パスを設定する必要がある。検索パスを設定する方法は以下の2種類がある。

  1. 「/etc/ld.so.conf」ファイルに設定
#ld.so.conf ファイルに /usr/test/lib ディレクトリを検索パスとして設定
$ vi /etc/ld.so.conf
/usr/test/lib

#ldconfig の実行により、/etc/ld.so.cache を更新
$ldconfig
  1. 環境変数のLD_LIBRARY_PATHへの設定
#環境変数の LD_LIBRARY_PATH に /usr/test/lib ディレクトリを検索パスとして設定
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/test/lib
11
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?