2016-10-03 9 views
0

libudevのバージョンが異なるため、ドライバを異なるLinuxディストリビューションに移植するのが難しいです。libudevのバージョンを動的に決定する方法

多くのLinuxディストリビューションには異なるバージョンのlibudevがあり、libudevはインターフェースを破壊することで知られています。

私たちはudevバージョン用のラッパーを作成しており、そのラッパーライブラリは 'pkg-config'ウィザードを使用してudevバージョンを使用しています。しかし今、私がKali Linuxのような異なるディストリビューションでドライバを走らせているとき、私は、「kali linux」のようないくつかのLinuxディストリビューションに 'pkg-config'ユーティリティが存在しないことを知ります。

私のドライバは、 'Kali Linux'では見つからない 'pkg-config'ユーティリティに依存するため、動作しません。そして、 'pkg-config'ユーティリティを使わずにlibudevのバージョンを判断する方法はありません。私のクライアントに 'pkg-config'ユーティリティをインストールさせても、いくつかのLinuxシステムには* .pcファイルがないので、失敗します。

この問題の代替手段はありますか? libudevのバージョンを推測するのは、そのライブラリで宣言されている関数を検索することですか?これが私の心の中に現在ある唯一の方法です。

ありがとうございました。

+0

私はあなたの前提が間違っていると思います。 pkg-configは確実にKali Linuxに存在します。あなたはそれをインストールしていないかもしれません。 – nos

+0

はい私はインストールされていませんでした。ライブバージョンamd64を使用しています。 –

+0

次に、kaliのパッケージマネージャを使用してpkg-configユーティリティをインストールする必要があります。 – nos

答えて

0

libudevにはpkg-configがライブディストリビューションに含まれています。 しかし名前が変更されました。今すぐ呼び出す必要があります。代わりに「PKG-config設定--modversion libudev」の

pkg-config --modversion udev 

あるraspbian、カーリーとUbunuディストリビューションの最新版Debianをベースとしているように見えるため、これは本当です。

更新: pkg-configを持たない別のディストリビューションが好きです。この場合、udevadmというツールがあり、それを使ってlibudevのバージョンを読むことができます。

which udevadm 
if [ $? -eq 0 ]; then 
    UDEV_VERSION=`udevadm --version` 
fi 
関連する問題