7

移植性のためにautoconfベースのシステムで構築されたプロジェクトのGLibヘッダーを含める必要があります。

ポータブルな方法でGLibヘッダーを安全にインポートするにはどうすればよいですか?私はpkg-configについて知っていますが、それは完全に移植可能ではありません(一部のシステムにはそれがなく、構成のためにautoconfのみに依存したいので)。

4

2 に答える 2

12

マクロを使用することにより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)
于 2010-08-21T19:43:17.263 に答える
4

GLib 2.22INSTALLファイルにpkg-configは、このライブラリをインストールするための要件が​​記載されています。私はGLibではありません(しゃれが意図されています!)。INSTALLこの要件のステートメントは、ファイル の先頭にある最初のものの 1 つです。

周囲のテキストから、GLib 自体をコンパイルする必要があるかどうかは不明pkg-configですが、GLib 2.22 の作成者が、ユーザーが pkg-config なしで GLib に対してコンパイルすることを意図していないことは明らかです。特に、GLibはファイルを適切make installにインストールします。.pc

プラットフォームの移植性のために、$PKG_CONFIG_PATH適切に設定するようにユーザーに指示してください。

于 2009-12-12T05:29:12.133 に答える