Ubuntu18.04にinstallしたライブラリをg++でコンパイルする際にパスを通すのが面倒だったのでpkg-configで管理する
Ubuntuの端末でpkg-config
を実行した際、/usr/lib/pkgconfig
と/usr/share/pkgconfig
内部にある.pc
ファイルを順番に実行していく。.pc
ファイルにはライブラリのパス情報などが記述されている。これ以外のディレクトリを走査して欲しい場合は、$PKG_CONFIG_PATH
にパスを通す。なのでこれのいずれかのディレクトリに.pc
ファイルを作成する
■.pc
の書き方
prefix=/home/path-to-your-library
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: mylib
Description: my library
Version: 1.0.0
Cflags: -I${includedir}/mylib
Libs: -L${libdir} -lmylib
Name: pkg-configを実行する際に渡すライブラリ名
Description: ライブラリの説明
URL: ライブラリを公開している場合、利用者向けのURL
Version: ライブラリのバージョン
Requires: ライブラリを利用するために必要なパッケージ一覧
Requires.private: ライブラリを利用するために必要なプライベートパッケージ一覧
Conflicts: 競合情報
Cflags: ライブラリのincludeパス
Libs: ライブラリのlibパス
Libs.private: ライブラリのプライベートlibパス
■実行
pkg-config --cflags --libs mylib
参考:
Guide to pkg-config
https://people.freedesktop.org/~dbn/pkg-config-guide.html
PKG_CONFIG_PATH environment variable
https://askubuntu.com/questions/210210/pkg-config-path-environment-variable