0

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

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

しかしCFLAGS、makefile に with の行を含めた後でも、含まれているディレクトリに存在する、含まれていない 1 つのヘッダー ファイルに対してエラーが発生します。

他の方法はありますか? ヘッダー ファイルをメイクファイルに含めるにはどうすればよいですか?

4

1 に答える 1

0

CFLAGSとEXTRA_CFLAGSが正しく適用されていませんmakefile では、これらは C コンパイラ オプション/定義の単なる一般的な名前であり、コンパイラ ( CROSS_COMPILE ) を呼び出すコマンド ラインに追加する必要がありますが、環境変数を介して追加する必要はありません (エクスポートで実行しようとしたように、makefile では明らかに間違っています)。makefile には次のようなものが必要です。

<target>:
     $(CROSS_COMPILE) $(CFLAGS) $(EXTRA_CFLAGS) ....
于 2011-07-16T21:28:25.747 に答える