2011-07-16 11 views
0

Ubuntuで1つのCファイルをコンパイルしていますが、ヘッダファイルをインクルードする際にエラーが発生します。私のMakefileは次のとおりです。makefileにdirをインクルードする

obj-m := ov7725.o 
CC = /opt/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc 
EXTRA_CFLAGS +=-march=armv5 
CFLAGS += -I /usr/local/arm/3.3.2/arm-linux/sys-include/linux 
#LINUXKERNEL_INSTALL_DIR = /lib/modules/2.6.32-21-generic/build 
#CFLAGS = -Wall -I $(LINUXKERNEL_INSTALL_DIR) 

#export LINUXKERNEL_INSTALL_DIR CROSS_COMPILE CFLAGS PLATFORM 
KDIR := /home/mayank/DM355SDK789311old/fs/fs/lib/modules/2.6.29-ridgerun-davinci1/build 
#/lib/modules/2.6.32-32-generic-pae/build 
PWD := $(shell pwd) 

default: 
# $(MAKE) -C $(KDIR) M=$(PWD) modules 
    make -C $(KDIR) ARCH=arm CROSS_COMPILE=/opt/arm-linux-gnueabi/bin/arm-linux- gnueabi- M=`pwd` modules 

#all: 
# $(CROSS_COMPILE) gpio_custom_dir_driver.c -o hello 
clean: 
    rm -rf *o user_gpio 

しかし、たとえMakefileのCFLAGSでラインを含めた後、私は含まれたディレクトリに存在している含まれていない1つのヘッダファイルのエラーを取得しています。

他の方法はありますか。ヘッダーファイルをどのようにメイクファイルに含めることができますか?

+2

どのコマンドを実行していますか、どのファイルをコンパイルしていますか、正確なエラーメッセージは何ですか?あなたの質問を編集し、コピーして貼り付けてください。 – Gilles

答えて

0

あなたCFLAGSEXTRA_CFLAGSが正しく適用されません。 makefileでは、これらはCコンパイラオプション/定義の一般的な名前に過ぎず、環境変数ではなくコマンドラインからコンパイラ(CROSS_COMPILE)を追加する必要があります。 。あなたはメークファイルに次のようなものを持っていなければなりません:

<target>: 
    $(CROSS_COMPILE) $(CFLAGS) $(EXTRA_CFLAGS) .... 
+0

これは明らかにLinuxカーネルモジュールmakefile(Kbuildフレームワークを使用)です。カーネルソースツリーにはこのようなルールがあり、通常モジュールディレクトリにはありません。私はMayankのエラーが彼のCソースと関係があると思うが、エラーを見ることなく、これは純粋な推測である。 – Gilles

+0

@Gilles、OK、それに応じてタグ付けして、質問が明らかになる場合 - 私は私のansを削除します。しかし、kbuildを使ったことはありません。 – pmod

関連する問題