Проблема со сборкой MIPS - PullRequest
0 голосов
/ 10 сентября 2009

У меня проблема с моим портом mips .... Всякий раз, когда я пытаюсь скомпилировать программу C с помощью оператора printf, он выдает предупреждение о том, что он не распознан, и в сгенерированном файле сборки нет директивы .asciiz ... Строка не существует .... может кто-нибудь, пожалуйста, скажите мне, почему ??

А также, в чем разница между созданием кросс-компилятора с «голым железом» и кросс-цепочки инструментов

Я новичок в мире кросс-компиляторов ....: -)

Ответы [ 3 ]

1 голос
/ 10 сентября 2009

Убедитесь, что у вас есть

#include <stdio.h>

вверху ваших исходных файлов C, которые используют printf.

0 голосов
/ 10 сентября 2009

Как вы компилируете? Затмение или командная строка? У меня была похожая проблема с использованием Eclipse, и я обнаружил, что семейство процессоров в Eclipse было «пустым». Это привело к тому, что ассемблер не понимает вывод компилятора, аналогично описанным выше симптомам.

Кросс-компиляторы ничем не отличаются от обычных компиляторов:

  • выведенный двоичный файл может быть несовместим с компьютером сборки (может быть для нескольких платформ)
  • компилятор может выводить много разных кодов платформы

В случае GCC он может быть загружен одним или несколькими семействами процессоров. GCC, который поставляется с Cygwin, довольно ограничен (i686); в Linux у вас будет больше выбора. Я полагаю, вы задаете другой вопрос о том, как настроить кросс-компиляцию, вам нужна помощь.

0 голосов
/ 10 сентября 2009

А также, в чем разница между созданием кросс-компилятора с открытым железом и кросс-цепочки инструментов

кросс-компилятор (который является gcc) является частью кросс-цепочки инструментов.

Кроме gcc, нам все еще нужно

  • binutils (для целевой платформы)
  • ядро ​​(целевой платформы)
  • glibc (для целевой платформы)

проверьте эту книгу для подробностей.

...