翻訳と辞書
Words near each other
・ PK/PD
・ PKA
・ PKa
・ PKb
・ PKC
・ Pkc
・ PKCS
・ PKCZ
・ PKF
・ PKG
・ Pkg-config
・ PKI
・ Pkill
・ PKIX
・ PKK
・ PKO
・ PKP
・ PKR
・ PKS
・ PKU


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Pkg-config : ウィキペディア日本語版
Pkg-config

pkg-configとは、ライブラリを利用する際に必要となる各種フラグやパス等を、共通したインターフェースで提供でするための手段である。
== 概要 ==
pkg-configは、環境変数PKG_CONFIG_PATHのパスに存在する
*.pc ファイルに記録された情報を元に、ビルドの際に必要な文字列を返す。
例えば、libaaa.soを /usr/local/lib/aaa/ 以下に保存し、ヘッダファイルを /usr/local/include/aaa/ 以下にインストールした場合。
libaaa.so を利用したソースをコンパイルする際に、コンパイラへlibとincludeのパス等を指定する必要があるが、そのパスが環境ごとに異なる場合を考えると必ずしも gcc -I/usr/local/lib/include -o a.c -L/usr/local/lib/aaa -laaa が成立するとは限らない。
もしもlibaaa が aaa.pc を提供していれば、
pkg-config aaa --cflags
で文字列 -I /usr/local/lib/aaa を得られ、
pkg-config aaa --libs
で文字列 -L /usr/local/lib/aaa -laaa を得られるかもしれない。
もしもlibaaaがpkg-configに対応していれば(インストール時に適切な aaa.pc が作成されるライブラリーであれば)、そのlibaaa利用の際には pkg-config を用いることができるので、記述に統一性を持たせられる。
gcc `pkg-config aaa --cflags --libs` a.c
''
*''.pcは普通は/usr/lib/pkgconfig/以下に作成され、pkg-config が読みにいくデフォルトのパスもここだが、/usr/share/pkgconfigの場合もあるかもしれない。
--prefix=/usr/localとしてライブラリーをビルドした場合は /usr/local/lib/pkgconfig かもしれない。
''
*''.pcのパスを独自に指定したい場合は環境変数PKG_CONFIG_PATHに指定する。export PKG_CONFIG_PATH=/usr/lib/aaa/pkgconfig など。
''
*''.pcの記述方法は、単純にフラグに応じて出力する文字列が列挙されているだけである。
たとえばglibの.pcファイルである glib-2.0.pc の場合は、
prefix=/usr
exec_prefix=$
libdir=$/lib
includedir=$/include

glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums

Name: GLib
Description: C Utility Library
Version: 2.30.2
Libs: -L$ -lglib-2.0
Libs.private: -lrt
Cflags: -I$/glib-2.0 -I$/glib-2.0/include
もしも pkg-config を使わずに、直接コンパイルフラグを指定するとしたら
glib_test.c
#include
main()
gcc -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -L/us/glib-2.0 -lglib-2.0 glib_test.c
と、glibを利用するためのパスやフラグの記述が煩わしい。しかもこのパスはユーザーごとに異なる可能性もあるので、glib利用者がMakefile等に決め打ちしてもうまくいかない場合も考えられる。
一方、pkg-config を使えば
gcc `pkg-config glib-2.0 --cflags --libs` glib_test.c
と、シンプルかつ抽象的に記述できる。

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Pkg-config」の詳細全文を読む




スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.