2012-09-04 28 views
23

私はudevをインストールしようとしています。そして、udevは./configureLinuxのglibにはpkg-configが必要で、pkg-configにはglibが必要ですか?

--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. 

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

答えて

25

すでにご存知のように、実際にはpkg-configとglibの間に循環依存関係があります。これを打破するために、pkg-configのsource codeには、それをコンパイルするのに十分なバージョンのglibが含まれています。依存関係のサイクルが壊れるはずです。

​​でpkg-configを設定してみてください。

+0

答えをありがとう。それでもうまくいきましたが、glibとudevのエラーメッセージはまだ残っています – Peter

+1

@Peter './configure --with-internal-glib'で' udev'をコンパイルしようとしましたか? – user1202136

+0

@Peterは絶対にそれを試してください。エラーメッセージを注意深く読んで、それらの意味を理解することがいかに重要であるかを十分に強調することはできません。 – ptomato

8

それはすでにglibのエラーメッセージに含まれています

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.

口が達者でスクリプトを構築するにはlibffiを見つけるために、PKG-config設定を使用しています。しかし、環境変数を設定することで、手動で情報を提供することもできます。 pkg-configを呼び出す必要はありません。 Glib自体はpkg-configをまったく必要としません。

この問題に対するもう1つの解決方法は、pkg-configユーザーによって提供されています。ここでも、エラーメッセージの最後に:このシナリオでは

please set GLIB_CFLAGS and GLIB_LIBS to the correct values or pass --with-internal-glib to configure

、PKG-config設定自体は、すでにシステムに口が達者をせずに構築するために必要なすべてのものが付属しています。

+1

最初の解決策を実行する方法がわからない場合、2番目の解決策を実行するのは簡単です。 – ypnos

+0

答えをありがとう。これは2番目の方法で動作しましたが、glibとudevのエラーメッセージはまだ残っています – Peter

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. 
+3

いくつかの説明を追加してください – Narendra

0

libudevはsystemdの一部であり、glibに依存しません。

ほとんどのLinuxディストリビューションは、pkg-config、libudev、およびglibのバイナリを提供します。おそらくすでにインストールされているはずですが、そうでない場合は、パッケージマネージャを使用して取得できます。

これを自分でコンパイルする必要がある場合は、glibを使用しない軽量なpkg-configの実装pkgconfを使用することを検討してください。

関連する問題