2013-06-09 3 views
4

Я видел несколько способов сделать это (и до сих пор я попытался нету пару, но я хочу, чтобы изолировать этот для простоты)Compile C для архитектуры Mips

Там, как предполагается, должен быть способ сделать это через gcc, и я бы предпочел это, я просто продолжаю ударять по стенам.

Я использую debian7 и могу использовать то, что когда-либо было другим ароматом там (я на данный момент желаю избежать qemu casue. Я хочу что-то меньшее.) Я следую этому примеру, найденному здесь.

http://moozing.wordpress.com/2011/04/05/cross-compile-in-debian/

Я был в состоянии сделать все, и в течение части этого я должен был установить libgmp3c2-dummy_1.0_all.deb для ти продолжать

только сейчас мне нужно собрать и все, что я am компиляция - это простой сценарий hello world, однако при компиляции я не могу заставить libgmp.so.3 не находиться в каталоге/usr/lib/dir, но есть один в/usr/lib/mips-linux-gnu-gcc Я думал, что я скопировал его, чтобы посмотреть, нужно ли его компилировать, и я понимаю, что этот файл эльфа закодирован в big-endian, что имеет смысл. но что мне не хватает, чтобы скомпилировать этот файл?

, и я попытался собрать вещь как большой Endian я думаю, что либо, что у меня есть путаница из библиотек или что мне нужен различный libgmp.so.3 ..

я также попытался APT-получить установку libgmp -dev libgmp3-dev тоже.

Благодарим за помощь, если вы можете! :), и если вы знаете простой способ сделать это, что не займет кучу места на моей машине, тогда я открыт, но я бы хотел попробовать с GCC и использовать цепочку инструментов.

Спасибо!

+0

Возможный дубликат [Есть ли способ использовать gcc для конвертации C в MIPS?] (Http://stackoverflow.com/questions/4175450/is-there-a-way-to-use-gcc-to- convert-c-to-mips) – user2284570

+0

Это может быть дубликат как информация. Тем не менее, с точки зрения предоставления наиболее конкурентного ответа, представленный здесь покажет другим, как это сделать. Кроме того, использование Qemu для всего процесса громоздко, а не то, что каждый может подобрать. – ApertureSecurity

+0

Дубликат, потому что одни и те же ответы относятся к обоим вопросам. – user2284570

ответ

6

Ну, мне удалось скомпилировать MIPS в Debian. Редактировать Я хочу улучшить этот ответ для удобства для использования в других ...

1. deb http://www.emdebian.org/debian stable main to /etc/apt/sources.list 

    2. apt-get update. 

    3. install libgmp3c2 from https://packages.debian.org/squeeze/libgmp3c2 

    4. apt-get install gcc-4.3-mips-linux-gnu libgmp3c2-mips-cross this worked 

затем просто MIPS-Linux-гну-НКА file -o исполняемый

Вот так.

PS, если вы работаете с маршрутизаторами .... используйте параметр -статический параметр при компиляции. Таким образом, в конце концов, это выглядело как

mips-linux-gnu-gcc -EB -march=34kc -static test.c -o test 

Если у вас есть проблемы с открытым ключом брелоком не признаваемые, используйте emdebian-archive-keyring пакет, который может быть установлен с помощью APT.

+0

Мне не нравится Редактировать выше, потому что это не так ясно, как мой ответ. Для тех, кому нужен явный ответ для поиска emdebian-archive-keyring, вы можете посмотреть здесь. http://ftp.us.debian.org/debian/pool/main/e/emdebian-archive-keyring/emdebian-archive-keyring_2.0.3_all.deb – ApertureSecurity

0

Вы можете ссылаться на этот пост Setting up cross-compiler for MIPS-I version 1, так как это, кажется, самое простое решение вашей проблемы, так как вы хотите просто перекрестно скомпилировать MIPS (обратитесь к его ответу на вопрос также). Заметьте, я его не протестировал.

Я построил GCC, чтобы показать источник в сборке MIPS от моего процессора ARM, но я больше не могу найти руководство. Но вы можете захотеть также изучить gcc для кросс-компиляции. Я обновлю это сообщение через несколько дней, так как это заинтриговало меня написать простой HOWTO, настроенный кросс-компилятор MIPS.

+0

Ну, мне удалось собрать MIPS. Я добавил это 1. 'http://www.emdebian.org/debian/ stable main' в /etc/apt/sources.list 2. apt-get update 3.install libgmp3c2 http: //packages.debian. org/squeeze/libgmp3c2 4. apt-get install gcc-4.3-mips-linux-gnu libgmp3c2-mips-cross это сработало – ApertureSecurity

+0

НО, когда я запускаю свою программу (это просто helloworld.c), я получаю строку 1: синтаксическая ошибка: слово неожиданное (ожидающее «)»), это заставляет меня думать, что я оставил наши круглые скобки. Но у меня нет ... целевая FS может быть прочитана только ... я получу эту ошибку? – ApertureSecurity

+0

Я сделал ls-alrth, и я получил -rwxr-xr-x для каждого из них, это сделало бы мою вещь, я мог бы выполнить их ... хотя ./file возвращает файл can not file: not found .... weird eh? – ApertureSecurity

2

Почему бы просто не установить бесплатный Mentor/Codesourcery gcc MIPS кросс-компилятор вместо того, чтобы пытаться построить его с нуля?

Когда вы установили крест MIPS компилятор, вы должны установить библиотеки MIPS в соответствующий каталог для кросс-компилятор, и не в каталоге /usr/lib для вашей установки хоста Linux. Вы не можете использовать apt-get, чтобы попытаться установить библиотеки MIPS, поскольку этот инструмент может устанавливать только библиотеки для установки хоста Linux.

Смежные вопросы