移植性のためにautoconfベースのシステムで構築されたプロジェクトのGLibヘッダーを含める必要があります。
ポータブルな方法でGLibヘッダーを安全にインポートするにはどうすればよいですか?私はpkg-configについて知っていますが、それは完全に移植可能ではありません(一部のシステムにはそれがなく、構成のためにautoconfのみに依存したいので)。
移植性のためにautoconfベースのシステムで構築されたプロジェクトのGLibヘッダーを含める必要があります。
ポータブルな方法でGLibヘッダーを安全にインポートするにはどうすればよいですか?私はpkg-configについて知っていますが、それは完全に移植可能ではありません(一部のシステムにはそれがなく、構成のためにautoconfのみに依存したいので)。
マクロを使用することにより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)
GLib 2.22INSTALL
ファイルにpkg-config
は、このライブラリをインストールするための要件が記載されています。私はGLibではありません(しゃれが意図されています!)。INSTALL
この要件のステートメントは、ファイル の先頭にある最初のものの 1 つです。
周囲のテキストから、GLib 自体をコンパイルする必要があるかどうかは不明pkg-config
ですが、GLib 2.22 の作成者が、ユーザーが pkg-config なしで GLib に対してコンパイルすることを意図していないことは明らかです。特に、GLibはファイルを適切make install
にインストールします。.pc
プラットフォームの移植性のために、$PKG_CONFIG_PATH
適切に設定するようにユーザーに指示してください。