Autoconf/AutomakeにGlibヘッダーをポータブルに含めます
-
20-09-2019 - |
質問
を含める必要があります グリブ 移植性のためのAutoCONFベースのシステムで構築されたプロジェクトのヘッダー。
Glibヘッダーをポータブルな方法で安全にインポートするにはどうすればよいですか?私は知っています pkg-config, 、しかし、それは完全にポータブルではありません(一部のシステムにはそれを持っていないので、私は構成のためにAutoCONFのみに依存することを好みます)。
解決
Glib 2.22 INSTALL
ファイルはそれを述べています pkg-config
このライブラリをインストールするための要件です。私はglibではありません(しゃれを意図した!);この要件の声明は、上部の最初のものの1つです INSTALL
ファイル。
周囲のテキストからは不明です pkg-config
Glib自体をコンパイルするには必要ですが、Glib 2.22の著者がPKG-Configを持たずにGlibに対してコンパイルすることを意図していないことは明らかです。特に、グリブ make install
インストールされます .pc
適切にファイル。
プラットフォームの移植性については、ユーザーに設定を指示します $PKG_CONFIG_PATH
適切に。
他のヒント
を使用して PKG_CHECK_MODULES
マクロ、autoconf生成 configure
スクリプトは、PKG-Configデータを自動的に取得できます。例として、この行をあなたに追加します configure.ac
ファイル:
PKG_CHECK_MODULES([DEPS], [glib-2.0 >= 2.24.1])
結果を引き起こします configure
glib-2.0のインストールされたバージョンがバージョン2.24.1以上、および変数に追加されることを確認するスクリプト DEPS_CFLAGS
と DEPS_LIBS
の出力 pkg-config --cflags glib-2.0
と pkg-config --libs glib-2.0
, 、 それぞれ。次に、を使用します $(DEPS_CFLAGS)
と $(DEPS_LIBS)
の変数 _CFLAGS
と _LDADD
予備選挙:
bin_PROGRAMS = hello
hello_CFLAGS = $(DEPS_CFLAGS)
hello_SOURCES = hello.c
hello_LDADD = $(DEPS_LIBS)