mini2440交叉编译出错问题
今天在想在ubuntu上编译一个helloworld的测试驱动,结果出现如下错误:
derek@derek-virtual-machine:~/mini2440/kernel-2.6.13$ make modules ARCH=arm
make: /usr/local/arm/3.4.1/bin/arm-linux-gcc:命令未找到
CHK include/linux/version.h
CC scripts/mod/empty.o
/bin/sh: /usr/local/arm/3.4.1/bin/arm-linux-gcc: not found
make[2]: *** [scripts/mod/empty.o] 错误 127
make[1]: *** [scripts/mod] 错误 2
make: *** [scripts] 错误 2
即提示在/usr/local/arm/3.4.1/bin/中找不到交叉编译器,但我在家目录的.bashrc文件中设置了交叉编译器,并导出到PATH环境变量,但为什么会到/usr/local/arm/3.4.1/bin/目录下去查找交叉编译器,结果查看内核源代码目录的Makefile文件发现默认指定了一个交叉编译器,如下:
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-
因此,可以通过修改Makefile中的CROSS_COMPILE值为自己定义的,或者通过在编译的时候直接指定,如下:
make modules ARCH=arm CROSS_COMPILE=arm-linux-
即可。
另外,在mini2440上我的driver/char中添加了hello.c文件,在Kconfig中添加上了如下:
config QQ2440_HELLO_MODULE
tristate "QQ2440/mini2440 Hello Module sample"
depends on ARCH_S3C2410
help
QQ2440 hello module sample.
结果make menuconfig查看的时候为什么找不到相关文件原来是在ARCH_S3C2410依赖选项没选上。
阅读(1195) | 评论(0) | 转发(0) |