尝试使用 GCC 编译 64 位 Linux 内核时,出现以下错误:
kernel/bounds.c:1:错误:代码模型“内核”在 32 位模式下不受支持
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- plugin --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(Red Hat 4.4.1-2)(GCC)
我的内核 make 命令行中是否缺少某些内容?或者是系统上的 GCC 不支持 64 位编译?
答案1
从您的 gcc -v 输出来看,您好像正在 32 位机器上运行,对吗?
Target: i586-redhat-linux
尝试指定 --with-arch=x86_64 而不是 i586。