在尝试使用gcc编译64位Linux内核时,我看到了 以下错误:
kernel / bounds.c:1:错误:32中不支持代码模型'kernel'
位模式
kernel / bounds.c:1:抱歉,未实现:64位模式未编译
这是 gcc -v 报告:
使用内置规格。
目标:i586-redhat-linux
配置为:../ configure --prefix = / usr --mandir = / usr / share / man -
infodir = / usr / share / info --with-bugurl = http://bugzilla.redhat.com/
bugzilla --enable-bootstrap --enable-shared --enable-threads = posix -
enable-checking = release --with-system-zlib --enable -__ cxa_atexit -
disable-libunwind-exceptions --enable-languages = c,c ++,objc,obj-c +
+,java,fortran,ada --enable-java-awt = gtk --disable-dssi --enable-
插件--with-java-home = / usr / lib / jvm / java-1.5.0-gcj-1.5.0.0 / jre -
enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar = /
usr / share / java / eclipse-ecj.jar --disable-libjava-multilib --with-ppl -
with-cloog --with-tune = generic --with-arch = i586 --build = i586-redhat-
Linux的
螺纹型号:posix
gcc版本4.4.1 20090725(红帽4.4.1-2)(GCC)
我在内核make命令行上遗漏了什么? 或者是系统上存在的gcc不支持64位 汇编?
答案 0 :(得分:5)
您的编译器是32位。
答案 1 :(得分:4)
你在运行什么系统?
如果主机系统以32位模式运行,则必须构建一个针对x86_64的交叉编译器。如果您的系统是64位系统,那么您的供应商应该为您提供一个能够构建64位可执行文件的系统编译器。
“uname -a”在你的系统上说什么?