【问题标题】:compiling 64 bit linux kernel with gcc使用 gcc 编译 64 位 linux 内核
【发布时间】:2009-09-03 00:02:09
【问题描述】:

在尝试使用 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 -- 禁用 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 (Red Hat 4.4.1-2) (GCC)

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

【问题讨论】:

    标签: linux gcc 64-bit linux-kernel x86-64


    【解决方案1】:

    您的编译器是 32 位的。

    【讨论】:

    • 在哪里可以找到 64 位 gcc?或者我如何编译 gcc 以支持 64 位编译?
    • 在构建支持 x86_64 位的编译器后,内核构建仍然失败。我尝试为 kernel-devel-x86_64 安装 fedora 核心 rpm。这也失败了。这是因为早期的 P4 CPU 可能不支持 64 位。
    • 哦,如果你想将你的操作系统的架构从32位更改为64位,你将完全重新安装系统。但是,在大多数 64 位处理器上,所有 32 位处理器都将继续运行。
    【解决方案2】:

    你在什么系统上运行?

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

    “uname -a”在你的系统上是什么意思?

    【讨论】:

    • 我很确定它在 32 位模式下运行。 uname -a Linux host.vivekian.com 2.6.29.4-167.fc11.i586 #1 SMP Wed May 27 17:14:37 EDT 2009 i686 i686 i386 GNU/Linux 如何构建 gcc 以定位 x86-64?跨度>
    猜你喜欢
    • 2011-01-21
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    相关资源
    最近更新 更多