Проблема в кросс-компиляции libSDL для платформы MIPS - PullRequest
1 голос
/ 20 ноября 2010

Я пытался скомпилировать libSDL-1.2.14 для моей платформы mips.
Но это не удалось.

Это были шаги, которые я опробовал:

  1. экспорт PATH = / opt / mips-4.3 / bin: $ PATH
  2. Зашел в исходную папку libSDL-1.2.14.
  3. Дали "./configure --prefix = / usr / local / SDL_Lib --host = mips-linux-gnu"
  4. Выполнил команду "make"

Получена ошибка:

cc1: предупреждение: включить местоположение «/ usr / include» небезопасен для кросс-компиляции
./src/audio/dma/SDL_dmaaudio.c: В функция 'DMA_WaitAudio': ./src/audio/dma/SDL_dmaaudio.c:167: ошибка: не могу найти регистр в классе 'COP3_REGS' при перезагрузке 'asm'
./src/audio/dma/SDL_dmaaudio.c:167: ошибка: операнд 'asm' невозможен ограничения составляют: * [build / SDL_dmaaudio.lo] Ошибка 1

Но затем я перенастроил файл make, дав следующие команды:

  1. сделать чистым
  2. . / Configure --prefix = / usr / local / SDL_Lib --host = mips-linux-GNU CPPFLAGS = -I / opt / mips-4.3 / mips-linux-gnu / libc / usr / include /
  3. сделать

ПРИМЕЧАНИЕ: /opt/mips-4.3/mips-linux-gnu/libc/usr/include/ - это путь, по которому вы можете найти файл select.h для платформы mips. Он содержит определения макросов FD_ZERO и FD_SET.

Тем не менее я получаю ту же ошибку.

cc1: предупреждение: включить местоположение «/ usr / include» небезопасен для кросс-компиляции
./src/audio/dma/SDL_dmaaudio.c: В функция 'DMA_WaitAudio':
./src/audio/dma/SDL_dmaaudio.c:167: ошибка: не могу найти регистр в классе 'COP3_REGS' при перезагрузке 'asm'
./src/audio/dma/SDL_dmaaudio.c:167: ошибка: операнд 'asm' невозможен ограничения составляют: * [build / SDL_dmaaudio.lo] Ошибка 1

Пожалуйста, помогите мне с некоторыми ценными указателями.

Спасибо
Sen

1 Ответ

2 голосов
/ 23 марта 2011

Во-первых, не устанавливайте путь к кросс-компилятору как первую часть вашего PATH, установите его как последний:

export PATH=$PATH:<path to cross-compiler>

Так безопаснее. Во-вторых, запустите . / Configure --help , чтобы получить все параметры. Что это сообщение об ошибке скажет, если оно будет умнее, так это:

  1. Вы пытаетесь кросс-компилировать, так как вы устанавливаете флаг --host
  2. Но вы не меняете другие параметры для поиска включений и библиотек для целевой среды
  3. Я собираюсь использовать / usr / include по умолчанию
  4. Но это для хост-системы, которая не будет работать при кросс-компиляции

Проверьте, какие другие параметры конфигурации вам нужно установить, чтобы сообщить сценарию конфигурации, где найти файлы .h (включает) и библиотеки для вашей цели. Обычно они поставляются с загружаемым кросс-компилятором. Кроме того, вам, вероятно, следует установить для переменной среды CROSS_COMPILE префикс кросс-компилятора перед запуском configure . Префикс - это часть перед gcc в кросс-компиляторе, при условии, что вы используете GCC в качестве кросс-компилятора.

...