0

mips ポートに問題があります....C プログラムを printf ステートメントでコンパイルしようとすると、認識されないという警告が表示され、生成されたアセンブル ファイルに .asciiz ディレクティブがありません...文字列はありません....誰か理由を教えてください??

また、ベアメタルクロスコンパイラとクロスツールチェーンの構築の違いは何ですか

私はクロスコンパイラの世界に不慣れです.... :-)

4

3 に答える 3

1

あなたが持っていることを確認してください

#include <stdio.h>

を使用する C ソース ファイルの先頭にprintf.

于 2009-09-10T07:31:38.670 に答える
0

また、ベアメタルクロスコンパイラとクロスツールチェーンの構築の違いは何ですか

クロスコンパイラ(gcc)はクロスツールチェーンの一部です。

gccの他に、まだ必要です

  • binutils(ターゲットプラットフォーム用)
  • (ターゲットプラットフォームの)カーネル
  • glibc(ターゲットプラットフォーム用)

詳細については、この本をチェックしてください。

于 2009-09-10T09:56:49.663 に答える
0

どのようにコンパイルしていますか?Eclipse またはコマンドライン? Eclipse を使用して同様の問題が発生し、Eclipse ではプロセッサ ファミリが「空」であることがわかりました。これにより、アセンブラーは、説明した症状と同様に、コンパイラーの出力を理解できなくなりました。

クロス コンパイラは、通常のコンパイラとそれほど違いはありません。

  • 出力されたバイナリは、ビルド コンピューターと互換性がない可能性があります (複数のプラットフォームに対応している可能性があります)。
  • コンパイラは、多くの異なるプラットフォームのコードを出力できる場合があります

GCC の場合、1 つまたは複数のプロセッサ ファミリを搭載できます。Cygwin に付属する GCC はかなり制限されています (i686)。Linux では、より多くの選択肢があります。助けが必要なクロスコンパイルの設定方法について別の質問をすることをお勧めします。

于 2009-09-10T10:19:47.157 に答える