2016-10-03 1 views
0

Ich habe Schwierigkeiten, meine Treiber in verschiedene Linux-Distributionen zu portieren, da ihre libudev-Version anders ist.So ermitteln Sie die libudev-Version dynamisch

Viele Linux-Distributionen haben unterschiedliche libudev-Versionen und libudev ist dafür bekannt, dass sie ihre Schnittstelle nicht mehr ändern, ohne auch nur 'soname' zu ändern.

Also haben wir einen Wrapper für die udev-Version geschrieben und diese Wrapper-Bibliothek verwendet die udev-Version mit dem Assistenten 'pkg-config'. Aber jetzt, wenn ich meine Treiber in verschiedenen Distributionen wie Kali Linux laufe, weiß ich, dass das 'pkg-config' Dienstprogramm in einigen Linux Distributionen wie "Kali linux" nicht existiert.

Jetzt funktionieren meine Treiber nicht mehr, da sie vom Dienstprogramm 'pkg-config' abhängen, das in 'Kali Linux' nicht zu finden ist. Und es gibt keine Möglichkeit, die libudev-Version zu ermitteln, ohne das Dienstprogramm 'pkg-config' zu verwenden. Selbst wenn ich meinen Client zwinge das 'pkg-config' Dienstprogramm zu installieren, haben manche Linux Systeme keine * .pc Datei, deshalb schlägt es auch fehl.

Gibt es Alternativen zu diesem Problem? Ist es oky, die libudev-Version zu erraten, indem Sie versuchen, die in dieser Bibliothek deklarierten Funktionen zu durchsuchen? Dies ist der einzige Weg, den ich momentan in meinem Kopf habe.

Dank Im Voraus.

+0

Ich denke, Ihre Räumlichkeiten sind falsch. pkg-config existiert sicherlich in Kali linux. Vielleicht hast du es nicht installiert. – nos

+0

ja ich habe nicht installiert, ich meine, ich benutze die Live-Version amd64 –

+0

Dann sollten Sie das pkg-config-Dienstprogramm mit dem Paket-Manager in Kali installieren. – nos

Antwort

0

Für die Tatsache, dass libudev eine pkg-config gibt es auf Live-Distributionen. Aber sein Name wurde geändert. Jetzt müssen Sie aufrufen.

pkg-config --modversion udev 

statt 'pkg-config --modversion libudev' Dies ist für neueste Version von raspbian wahr ist, kali und Ubunu Distros, die scheint debian basieren.

Update: Ich habe eine andere Verteilung, die nicht pkg-config haben, in diesem Fall gibt es ein Tool namens udevadm und es könnte verwendet werden, um es libudev Version zu lesen.

which udevadm 
if [ $? -eq 0 ]; then 
    UDEV_VERSION=`udevadm --version` 
fi 
Verwandte Themen