2

gcc を使用して 64 ビット Linux カーネルをコンパイルしようとすると、次のエラーが表示されます。

kernel/bounds.c:1: エラー: コード モデル 'kernel' は 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 (レッドハット 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 に答える