26

udevをインストールしようとしています。udev は、実行中にエラーを表示します./configure

--exists: command not found configure: error:
pkg-config and "glib-2.0 >= 2.16" not found, please set GLIB_CFLAGS and GLIB_LIBS
to the correct values or pass --with-internal-glib to configure 

OK、pkg-config と glib-2.0 がありません。

最初に、pkg-config をインストールしようとしました。私はこのメッセージを受け取りました:

checking whether to list both direct and indirect dependencies... no
checking for Win32... no
checking if internal glib should be used... no
checking for pkg-config... no
./configure: line 13557: --exists: command not found
configure: error: pkg-config and "glib-2.0 >= 2.16" not found,
please set GLIB_CFLAGS and GLIB_LIBS to the correct values or 
pass --with-internal-glib to configure

わかりました、そのglibが欠落していると解釈します。

次のステップで Glib をインストールします。

そして、私はこのメッセージを受け取りました:

configure: error: in `/root/glib-2.33.3':
configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

Alternatively, you may set the environment variables LIBFFI_CFLAGS
and LIBFFI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

しかし、私は今困惑しています。彼らはお互いを必要としていますか?私の間違いは何ですか?

4

4 に答える 4

34

すでに観察したように、pkg-configとglibの間には確かに循環依存関係があります。それを破るために、pkg-configのソースコードにはそれをコンパイルするのに十分なバージョンのglibが含まれています。これにより、依存関係のサイクルが中断されます。

でpkg-configを設定してみてください--with-internal-glib

于 2012-09-04T12:29:07.800 に答える
8

glib エラー メッセージに既に含まれています。

または、環境変数 LIBFFI_CFLAGS および LIBFFI_LIBS を設定して、pkg-config を呼び出す必要をなくすこともできます。詳細については、pkg-config の man ページを参照してください。

Glib ビルド スクリプトは、pkg-config を使用して libffi を見つけます。ただし、環境変数を設定することにより、手動で情報を提供することもできます。その場合、pkg-config への呼び出しは必要ありません。Glib 自体は pkg-config をまったく必要としません。

この問題に対する別の解決策は、pkg-config の人々によって提供されています。繰り返しますが、エラー メッセージの最後に:

GLIB_CFLAGS と GLIB_LIBS を正しい値に設定するか、 --with-internal-glib を渡して設定してください

このシナリオでは、pkg-config 自体に、システムに Glib がなくてもビルドするために必要なすべてがパッケージ化されています。

于 2012-09-04T12:27:18.670 に答える
1
export GLIB_CFLAGS="$(pkg-config --cflags glib-2.0)" 
export GLIB_LIBS="$(pkg-config --libs glib-2.0)"
printf '# In the case of a RHEL6.5\n\tGLIB_CFLAGS=%s\n\tGLIB_LIBS=%s\n' "$GLIB_CFLAGS" "$GLIB_LIBS"
# In the case of a RHEL6.5
        GLIB_CFLAGS=-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
        GLIB_LIBS=-lglib-2.0

# _now_ it is a no-brainer.
于 2014-05-06T09:38:14.487 に答える