takahiro_itazuriの公倍数的ブログ

本やWebを通して学習したことをまとめるブログです。最大公約数(つまり、共通部分)的なという表現と対比して、「なるべく包括的にカバーしつつ、更に+αの要素も加えられたらいいな」という意味で公倍数的ブログと名付けました。

ライブラリのいろいろ

プログラミングの基礎を学び終わると、より実用的なプログラムを書くために、「ライブラリ」というものを使うことが出てくるかと思います。
今回は「ライブラリ」に関することを学んで行きます。

目次

ライブラリとは

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

上記の例でわかりにくかった人のための例を下記に示します。(不要な方は次の章に飛んでください。)
わかりやすくするために「レシピ」を例にとって見ます。パソコンはプログラムにしたがって処理を実行していきます。ここでは、料理の初心者がレシピにしたがって料理をすることに例えていきたいと思います。例えば、レシピに「キャベツを千切りにします」と書かれていても、料理の初心者にはこの処理を実行することはできません。(実はパソコンもこういった知識は一切持っておらず、すべてプログラムに書いてある通りに実行しているだけです。)つまり、レシピ(プログラム)に逐一詳しい説明が必要となり、そこに記述することが必要です。一方で、100種類の料理のレシピが載っている本があったとき、千切りが出てくるたびに千切りのやり方を逐一記述してあるとかなり冗長になってしまいます。そこで、基本的な操作(よく使われる操作)をまとめておいて、該当する操作が出てきた場合にはその基本的な操作をまとめたものを参照するようにすれば良いと考えられます。この基本的な操作をまとめたものこそが「ライブラリ」に当たります。

ライブラリの種類

ライブラリには静的ライブラリ共有ライブラリの2種類があります。

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

リンクの方法

プログラムからライブラリの機能を呼び出すことをリンクと呼び、リンクには下記の2種類があります。

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

f:id:takahiro_itazuri:20170522164607p:plain