2009-07-31 19 views
0

Ich versuche, AC-Programmpaket (thc-ipv6-0.7) auf Linux Redhat 2.6.9-42.ELsmp zu kompilieren und es beschwert sich, dass es "linux/string.h" nicht finden kann .Linux redhat kernel-headers

Von Google erfuhr ich, dass dies Teil des Pakets "kernel-headers" ist.

Wenn ich das tue "rpm -qa | grep kernel"

Es zeigt, dass "kernel-devel" installiert ist (was ich glaube, ich brauche), aber nicht "Kernel-Header".

Ein "find/-name string.h" enthüllt string.h ist tatsächlich auf dem System, an vielen Stellen, einschließlich "/ usr/include".

Ich habe versucht, "-I/usr/include" zur make-Datei hinzuzufügen, bekam aber den gleichen Fehler.

Meine Frage ist, muss ich "Kernel-Header" installieren, und wenn ja, wo finde ich es, und welche Version?

+0

Haben Sie versucht, "yum install kernel-headers"? –

+0

ich habe versucht, in der Tat. Aber yum nicht installiert war, IIRC. –

Antwort

2

Normalerweise müssen Sie die Version dieser Header installieren, die der Version des Kernels entsprechen, der von dem System ausgeführt wird, auf dem Sie das Programm ausführen. In Ihrem Fall möchten Sie lokal 2.6.9-42 ausführen.

Die Nachricht beschwert sich über "linux/string.h" und nicht "string.h", also haben Sie ein Verzeichnis mit Linux als Unterverzeichnis hinzufügen.

Ich bin nicht gut genug über redhat wissen, wie man sie installiert (wahrscheinlich ein rpm-Befehl) und wo sie installiert werden (mit Debian und Derivate setzen Sie sie -I/usr/src/linux- Kernel-Version/include ").

+0

Guter Punkt über "linux" -Teil Der String tut dies ausdrücklich –

+0

linux/string.h unterscheidet sich vollständig von Ihrem anderen string.h, der erste ist für die vom Kernel verwendeten String-Funktionen, der zweite ist für die String-Funktionen vorgesehen von der Standard-C-Bibliothek –

+0

Yeah! hat funktioniert! Ich habe /linux/string.h in einem Verzeichnis namens /usr/src/kernels/2.6.9-42.EL-smp-i686/include/ gefunden. Als ich das in das Makefile geschrieben habe, hat es kompiliert. Vielen Dank! –

Verwandte Themen