2

在尝试使用 gcc 编译 64 位 linux 内核时,我看到以下错误:

内核/bounds.c:1:错误:32 位模式不支持代码模型“内核”
内核/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 (红帽 4.4.1-2) (GCC)

我在内核 make 命令行上遗漏了什么吗?还是系统上的 gcc 不支持 64 位编译?

4

2 回答 2

5

您的编译器是 32 位的。

于 2009-09-03T00:30:35.943 回答
4

你在什么系统上运行?

如果您的主机系统在 32 位模式下运行,您必须构建一个针对 x86_64 的交叉编译器。如果您的系统是 64 位系统,那么您的供应商应该为您提供能够构建 64 位可执行文件的系统编译器。

“uname -a”在你的系统上说什么?

于 2009-09-03T17:44:40.730 回答