2009-07-31 7 views
0

LinuxのRedhat 2.6.9-42.ELsmpでacプログラミングパッケージ(thc-ipv6-0.7)をコンパイルしようとしていますが、 "linux/string.h"が見つかりません。Linuxのredhatカーネルヘッダー

Googleからは、これが「カーネルヘッダー」パッケージの一部であることがわかりました。私が行う場合

「ます。rpm -qa | grepのカーネル」

それは(私は私が必要だと思うもの)、「カーネル-develのが」インストールされていることを示しているが、ない「カーネルヘッダ」。

"find/-name string.h"は、実際には、システム上の/ usr/includeを含む多くの場所でstring.hが明らかになっていることを示しています。

"-I/usr/include"をmakeファイルに追加しようとしましたが、同じエラーが発生しました。

私の質問は「カーネルヘッダー」をインストールする必要がありますか?その場合は、どこで見つけたらいいですか、どのバージョンですか?

+0

あなたがしようとしました 『』? –

+0

私は実際には、それを試してみました。しかし、yumのは、インストールされていなかった、IIRC約 –

答えて

2

通常、プログラムを実行するシステムで実行されるカーネルのバージョンに対応するヘッダーのバージョンをインストールする必要があります。あなたの場合は、ローカルで実行したい、2.6.9-42。

メッセージは "linux/string.h"ではなく "string.h"ではないので、サブディレクトリとしてlinuxを持つディレクトリを追加しました。

(おそらくrpmコマンド)インストール方法を知っているとは分かりません。Debianと派生したものは-I/usr/src/linux- カーネルバージョン /含まyumをカーネルヘッダのインストール」)。

+0

良い点の 『Linux』の部分を –

+0

linux/string.hは他のstring.hとはまったく異なります。前者はカーネルが使用する文字列関数用です。後者は提供されている文字列関数用です標準的なCライブラリによって。 –

+0

Yeah!It働いた! /usr/src/kernels/2.6.9-42.EL-smp-i686/include/というディレクトリに/linux/string.hがあります。私がmakefileに書き込むと、コンパイルされました。本当にありがとう! –

関連する問題