共有ライブラリ・ヘッダファイルLinuxの共有ライブラリ・ヘッダファイルに関する世界観です。共有ライブラリのコマンドlddコマンドlddコマンドは、引数に指定した実行ファイルが利用している共有ライブラリを表示する。Linuxやってみる!を参考に執筆・引用しました。検索の順序プログラム実行時にOSが探す、動的にリンクされる共有ライブラリ(.soファイル)は、以下の順序で検索される。/etc/ld.so.confの情報をOSに伝えるためのコマンド。ld.so.conf.d/*.confとなっていることを前提として、/etc/ld.so.conf.d/以下にmy.confを作ってパスを記述し、ldconfigでキャッシュ(/etc/ld.so.cache)を更新している。ldconfig共有ライブラリを作る共有ライブラリを作る場合は、以下のようにする。Code)となるようコンパイルする。PICでコンパイルするにはgccに-fpicまたは-fPICを渡す。詳しくは以下を参照のこと。bkブログ共有ライブラリを使う実行ファイルを作る共有ライブラリを使う実行ファイルを作る場合は、以下のようにする。main.cヘッダファイル/usr/includeとヘッダファイル/usr/includeには、システムのC言語用のヘッダファイルが置かれる。<stdio.h>」のstdio.hが存在するディレクトリがここ。標準入出力関数のヘッダファイルは/usr/include/stdio.hに存在する。C言語で任意のライブラリ関数のAPIを使ったプログラムを自分で書いてコンパイルするためには、関数のプロトタイプ宣言が書かれたヘッダファイルをインクルードしなければならない。/usr/includeディレクトリが存在しなければ、Cの標準ライブラリ関数や、あるいはどんなライブラリ関数を使ったプログラムも、コンパイルして使うことはできない。gccに-Iオプションをつけてコンパイルすると、/usr/include以外のディレクトリを検索対象に追加できる。"hoge.h"のようにダブルクオーテーションでヘッダファイルを囲った場合は、/usr/includeでなくプログラムと同じディレクトリからヘッダファイルをインクルードできる)。一度コンパイルしたバイナリを動かすためには、ヘッダファイルは必要ない。その代わり、ビルドされた共有ライブラリが必要になる。Qiita-develパッケージ-develと名前のついたライブラリのパッケージをインストールすると、/usr/includeにヘッダファイルが展開される。ほかにもREADMEなど開発向けドキュメントやサンプルプログラムなどがインストールされることもある。これは、自分でそのライブラリのAPIを使ったプログラムを書いたり、そのライブラリAPIを使ったプログラムをソースコードから「ビルドするために必要」だが、単にそのライブラリを使ったプログラムを「実行するためには必要ない」。わからないエンジニアカーネルヘッダーLinuxのカーネルヘッダーも/usr/include以下にインストールされる。