2010-12-18 18 views
1

私は関数nanosleep()を使用するモジュールを作成しようとしています。メイクファイル - ライブラリを含む

私のメイクファイルは、それが実行してビルドlibaryを変更し実行します: が-C /lib/modules/2.6.18-128.4.1.el5/build M = /ワークスペース/ LCD-ウィンスター-0.0.1モジュールを作ります

nanosleepは/ usr/includeに宣言されているので、私のmakefileはそれを見つけることができません。 この場所を含めるには、私のメイクファイルにどの行を追加すればいいですか?

おかげ

+0

のために検索されるディレクトリのリストにディレクトリdirを追加します。見つからない場合は、ビルド環境で何かが間違っています。 –

+0

将来参照するには、問題がビルドステップを理解しているかどうか、またはmakeと関係があるかどうかを教えてくれるので、makeが正しく実行していないと不平を言う前に手で希望のコマンドを実行できるかどうかを確認することは価値があります。 – dmckee

+0

私はテストのためにシェルから関数を実行することはできません。私はもう一度説明しましょう.. gccでは、関数usleepとnanosleepに精通しているコンパイラのIDです。しかし、 "make -C/src/kerneles/$(uname -r)/ include"でファイルを作る必要があるので、関数が... で宣言した他のライブラリを認識しません。 hファイルですが、別のコード: 1. /usr/src/kernels/2.6.18-128.4.1.el5-i686/include/linux/time.h 2. /usr/include/time.h が必要です関数は2番目のものでのみ宣言されています.. – azulay7

答えて

3

-I dirの
は ヘッダファイルを検索するディレクトリのリストにディレクトリdirを追加します。標準 システムにディレクトリがインクルードされる前に、-I という名前のディレクトリが検索されます。 ディレクトリdirが標準システム ディレクトリを含む場合、システムディレクトリ のデフォルト検索 およびシステム の特別処理が無効にならないようにするには、オプションは が無視されます。

& &

-Ldir `nanosleep`はPOSIXシステム上の標準ライブラリの一部です。-l

+0

あなたの答えをありがとう..私はすでにそうしようとした..まだそれは動作しませんでした。私のMakefileは以下のコメントにあります: ファイルシステムには多くの "time.h"がたくさんあるのでしょうか?両方のライブラリが含まれていると、コンパイラが2つのファイルを選択する方法はありますか? – azulay7

+0

make -C/lib/modules/$(shell uname -r)/ビルドM = $(PWD)モジュール-I/usr/include – azulay7

+0

答えてくれてありがとう..私はまだそれと..とstrugllingです。 私のコードはモジュールをコンパイルするためにケーネルのliabriesを必要とする他のliabriesを認識しません。soo私は-Cをしてコンパイルlibaryを変更する必要がありますが、それでも-Iによって他のliabriesを認識しません。 – azulay7

関連する問題