解决编译/home/module/hello.c:1: 错误:代码模式‘kernel’在 32 位模式下不受支持问题
2013-09-26 11:55
573 查看
当时在自己的开发板GT2440上移植u-boot,linux,根文件系统时,一切移植好之后,想测试下insmod命令,于是写了个hello简单的模块测试程序,但是编译时遇到的一个奇怪的问题:
make之后总是出错:
/home/module/hello.c:1: 错误:代码模式‘kernel’在 32 位模式下不受支持
/home/module/hello.c:1: 对不起,尚未实现:未编译入对 64 位模式的支持
make[2]: *** [/home/module/hello.o] 错误 1
make[1]: *** [_module_/home/module] 错误 2
下面是makefile
KERNELDIR= /home/GT2440/rootfs/lib/modules/2.6.30/build/
PWD := $(shell pwd)
obj-m := hello.o
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
cp hello.ko $(INSTALLDIR)
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
.PHONY: modules modules_install clean
初学者,上面的makefile是上网找了很久,各种版本的杂糅版.....结果不对,make之后
提示
ake -C /GT2440/linux/linux2.6.30 M=/home/GT2440/test modules
make[1]: Entering directory `/GT2440/linux/linux-2.6.30'
CC [M] /home/GT2440/test/hello.o
cc1: error: invalid option `64'
cc1: error: invalid option `no-red-zone'
cc1: error: invalid option `cmodel=kernel'
cc1: error: invalid option `no-sse'
cc1: error: invalid option `no-mmx'
cc1: error: invalid option `no-sse2'
cc1: error: invalid option `no-3dnow'
cc1: error: invalid option `accumulate-outgoing-args'
make[2]: *** [/home/GT2440/test/hello.o] 错误 1
make[1]: *** [_module_/home/GT2440/] 错误 2
make[1]: Leaving directory `/GT2440/linux/linux-2.6.30'
根据自己分析,应该是不能识别CROSS_COMPILE,于是在linux内核目录下修改Makefile文件,修改如下:
ARCH=arm
CROSS_COMPILE=arm-linux-
在编译下hello.c模块,通过。
make之后总是出错:
/home/module/hello.c:1: 错误:代码模式‘kernel’在 32 位模式下不受支持
/home/module/hello.c:1: 对不起,尚未实现:未编译入对 64 位模式的支持
make[2]: *** [/home/module/hello.o] 错误 1
make[1]: *** [_module_/home/module] 错误 2
下面是makefile
KERNELDIR= /home/GT2440/rootfs/lib/modules/2.6.30/build/
PWD := $(shell pwd)
obj-m := hello.o
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
cp hello.ko $(INSTALLDIR)
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
.PHONY: modules modules_install clean
初学者,上面的makefile是上网找了很久,各种版本的杂糅版.....结果不对,make之后
提示
ake -C /GT2440/linux/linux2.6.30 M=/home/GT2440/test modules
make[1]: Entering directory `/GT2440/linux/linux-2.6.30'
CC [M] /home/GT2440/test/hello.o
cc1: error: invalid option `64'
cc1: error: invalid option `no-red-zone'
cc1: error: invalid option `cmodel=kernel'
cc1: error: invalid option `no-sse'
cc1: error: invalid option `no-mmx'
cc1: error: invalid option `no-sse2'
cc1: error: invalid option `no-3dnow'
cc1: error: invalid option `accumulate-outgoing-args'
make[2]: *** [/home/GT2440/test/hello.o] 错误 1
make[1]: *** [_module_/home/GT2440/] 错误 2
make[1]: Leaving directory `/GT2440/linux/linux-2.6.30'
根据自己分析,应该是不能识别CROSS_COMPILE,于是在linux内核目录下修改Makefile文件,修改如下:
ARCH=arm
CROSS_COMPILE=arm-linux-
在编译下hello.c模块,通过。
相关文章推荐
- 解决编译内核模块helloworld.c:1: 错误:代码模式‘kernel’在 32 位模式下不受支持问题,未编译对64位的支持
- .NET下编译C++代码时出现"error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int"错误的解决方法。
- 项目文件.NET下编译C++代码时出现fatal error C1083: 无法打开包括文件:“xuhk_JNIHelloWorld.h”: No such file or directory错误的解决方法。
- 编译海思sdk包遇到的问题以及解决方法(hello_world.srec错误 examples/standalone错误)
- Java8系列(错误解决)--maven编译时"-source 1.5 中不支持 lambda 表达式"问题的解决
- IDEA编译时候出现问题:代码不提示错误,编译时出错解决办法
- 使用px4编译代码时出现“no module names site”错误的解决办法
- 类语句.NET下编译C++代码时出现"error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int"错误的解决方法。
- 解决TensorFlow最新代码编译错误问题
- .NET下编译C++代码时出现fatal error C1083: 无法打开包括文件:“xuhk_JNIHelloWorld.h”: No such file or directory错误的解决方法。
- Eclipse 编译错误问题解决
- 设置Serv-U FTP 支持被动模式连接 ,530错误等解决办法集锦
- nginx低版本不支持pathinfo模式,thinkphp针对此问题的解决办法
- DirectShow 在vs2005中的问题解决之其它类文件编译错误问题处理
- 解决win7系统不支持16位实模式汇编程序DOS执行的问题
- ubuntu 下编译C++代码出现的问题解决
- vmware kernel module updata 问题解决
- C#项目编译报“LC.exe已退出,代码为-1错误”解决办法
- 编译LDD第三版中scullc代码时遇到的问题及解决方法
- 解决Xamarin 生成时出现 “aapt.exe”已退出,代码为 1。错误问题