共有ライブラリの設定

Linux上でGNUコンパイラを用いてコンパイルを行うとき,参照して欲しいライブラリのディレクトリは"-L"オプションで指定することによって指定することが出来る.
しかし標準ライブラリのパスなどはシステム側で設定されている為,"-L"オプションで指定することなく参照されることとなる.
この様に頻繁に用いる共有ライブラリなどのパスは"-L"オプションで指定しなくても参照するようにした方が便利.

設定方法は以下

$sudo vi /etc/ld.so.conf
  // 参照したいディレクトリパスを追記
$sudo ldconfig

共有ライブラリのパスは"/etc/ld.so.conf"ファイルを参照して,共有ライブラリキャッシュファイルである"/etc/ld.so.cache"を生成する.
コンパイル時には,このキャッシュファイルを参照して共有ライブラリを探しにいく.
このことから"/etc/ld.so.conf"ファイルの追記だけでは不十分でキュッシュファイルを更新する必要があり,"ldconfig"コマンドによってそれを行っている.

キャッシュファイルの現在の内容を確認するには以下のコマンドによって可能.

$ldconfig -p

また"/etc/ld.so.conf"ファイルに以下の記述がされている.

include /etc/ld.so.conf.d/*.conf
これは共有ライブラリの参照ディレクトリに"/etc/ld.so.conf.d/"ディレクトリにある".conf"でおわる全てのファイルの内容も追加するということを行う内容である.
これより"/etc/ld.so.conf"ファイルの記述内容が複雑になるときは,"/etc/ld.so.conf.d/"ディレクトリ以下にファイルを作成することによって各ライブラリごとにコンパクトにまとめることが可能となる.
実際に,"/etc/ld.so.conf.d/"ディレクトリを見ると標準ライブラリのための"libc.conf"ファイルが存在することが確認できる.