реклама на сайте
подробности

 
 
> Cubieboard2, вопросы по кросскомпиляции
berkl
сообщение Jan 4 2014, 07:32
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 22-03-10
Пользователь №: 56 115



Привет форумчане,

Вот хочу начать юзать эту http://docs.cubieboard.org/products/start#a20-cubieboard плату но не могу разобраться с кросскомпиляцией. У меня инструменталка - Убунта, на кубике предполагается юзать Lubuntu. Нужен кросскомпилятор (тулчейн), но на сайте производителя я нашел только вот эту статейку http://docs.cubieboard.org/tutorials/cb1/d...on_ubuntu_12.04 Там предлагается использовать Sourcery CodeBench Lite, и в качестве примера компилируется HelloWorld! незамысловатой командой
Цитата
arm-none-linux-gnueabi-gcc–static –o first first.c

То есть скачали тулчайн и сразу компилируем, и пофиг какое у нас железо 05.gif ? Настраивать gcc не надо, хотя бы указать какая архитектура у нашего камешка (ARMv7-A) ?

Дальше нашел форум forum.xda-developers.com/showthread.php?t=2098133http://forum.xda-developers.com/showthread.php?t=2098133 Тут один товарищ Christopher83 настрочил кучу тулчайнов тулзом CrossTool-NG для разных версий линаровских gcc и gdb. Примечательно, у него часть тулчайнов собрано для конкретного проца (какой та там Самсунг). Другая часть - так называемые "generic". Типа куда угодно подойдут, как есть, включая тот же кубик ?

Проясните пожалуйста, как пользоваться "generic" кросскомпиляторами, вроде CodeSourcery, Linaro. Неужели просто брать и компилить, и пофиг что у меня: кубик, малина, или еще какой-нибудь бигль ?

Заранее благодарен
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
berkl
сообщение Jan 5 2014, 12:46
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 22-03-10
Пользователь №: 56 115




Цитата
Кросскомпиляция настраивается на конкретный процессор и с конкретными опциями, в том числе и линкера. Делается это чаще в Makefile.


Понятно.

То есть нельзя делать как тут http://docs.cubieboard.org/tutorials/cb1/d...on_ubuntu_12.04 рекомендуют. Типо скачал кросскомпилятор, подсунул его make'у вместо нативного gcc инстументалки и привет.
Go to the top of the page
 
+Quote Post
psL
сообщение Jan 5 2014, 16:12
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Цитата(berkl @ Jan 5 2014, 16:46) *
То есть нельзя делать как тут http://docs.cubieboard.org/tutorials/cb1/d...on_ubuntu_12.04 рекомендуют. Типо скачал кросскомпилятор, подсунул его make'у вместо нативного gcc инстументалки и привет.

ссылка не открывается.
Без указания архитектуры сборка будет производится под generic arm, т.е. без использования характерных комманд и оптимизации. Линукс как раз и портируют на другие архитектуры, чтобы обеспечить однотипную среду выполнения и инструменты сборки в независимости от архитектуры, т.е. чтобы "подсунул и привет"
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 5 2014, 19:14
Сообщение #4


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(psL @ Jan 5 2014, 20:12) *
Без указания архитектуры сборка будет производится под generic arm, т.е. без использования характерных комманд и оптимизации. Линукс как раз и портируют на другие архитектуры, чтобы обеспечить однотипную среду выполнения и инструменты сборки в независимости от архитектуры, т.е. чтобы "подсунул и привет"

Именно ARM????
Сборка должна идти для системы в которой выполнен запуск, если в makefile не указан кросскомпилятор и ARCH явно.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
psL
сообщение Jan 5 2014, 20:11
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Цитата(mdmitry @ Jan 5 2014, 23:14) *
Именно ARM????
Сборка должна идти для системы в которой выполнен запуск, если в makefile не указан кросскомпилятор и ARCH явно.

в случае:
Код
arm-none-linux-gnueabi-gcc –static –o first first.c

именно ARM
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 5 2014, 20:23
Сообщение #6


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(psL @ Jan 6 2014, 00:11) *
в случае:
Код
arm-none-linux-gnueabi-gcc –static –o first first.c

именно ARM

Это явно набранная командная строка и сомнений нет, что arm.
Если хочется десятки файлов большого проекта так собирать, то конечно можно - дело вкуса.
Пакеты linux`а все же обычно собираются с помощью утилиты make. При сборке ядра (с помощью make) для платформы отличной от текущей, необходимо явно указывать архитектуру и кросскомпилятор.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
psL
сообщение Jan 5 2014, 23:26
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Цитата(mdmitry @ Jan 6 2014, 00:23) *
Это явно набранная командная строка и сомнений нет, что arm.
Если хочется десятки файлов большого проекта так собирать, то конечно можно - дело вкуса.
Пакеты linux`а все же обычно собираются с помощью утилиты make. При сборке ядра (с помощью make) для платформы отличной от текущей, необходимо явно указывать архитектуру и кросскомпилятор.

Явно набранная кем? Разве при обработке makefile будут выполняться какие-то другие команды?
Но мне понятно о чем вы пишете.
Видимо вопрос ТС не в том, как перенести программу с x86 на arm, вопрос в том, обязательно ли задавать архитектуру для тулчейна или достаточно того, что сборка будет производится под платформу (generic).
Для программ типа first.c, да и для многих других задавать архитектуру необязательно.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 08:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016