Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
Помогите с кросс компиляцией!
GLONIUM
Добавлено 13.01.2012 20:54 Сообщение: 11
GLONIUM
0

Пункты: 567
Регистрация: 19.05.2011
Скачал у вас toolchain скомпилил hell world пробовал запустить выдаёт ошибку сегментации памяти.установил builroot с crosstool-NG! а вот как с ним работать пока не понял! Как его запустить! Помогите пожалуйста!
Спуститься к концу Подняться к началу
Персональная информация
GLONIUM
Добавлено 13.01.2012 23:17 Сообщение: 12
GLONIUM
0

Пункты: 567
Регистрация: 19.05.2011
получилось собрать buldroot компилируются программы без ключа static! (кстати всё хотел спросить uclib это библиотека что стоит у меня на плате как аналог dll из Windows простите за глупые вопросы просто я немного запутался!) Теперь пробовав скомпилить что нибудь выдаёт ошибку мол компилято генерирует не запускаемы бинарники!! :) Что делать подскажите пожалуйста! Заранее спасибо!
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 13.01.2012 23:32 Сообщение: 13
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
uclibc - это базовая библиотека, т.н. стандартная сишная либа, которая предоставляет набор базовых функций, таких как, например, printf, puts, memcpy и т.д. По сути является обёрткой над стандартными системными вызовами ядра (syscall-ы). Например, функция puts, как правило, строится на базе системного вызова write.

Стандартных сишных либ существует вагон и маленькая тележка: uclibc, glibc, eglibc, dietlibc.
Можете почитать: http://ru.wikipedia.org/wiki/UClibc

> выдаёт ошибку мол компилято генерирует не запускаемы бинарники
ну как бы он прав, с чего армовому бинарнику запускаться на x86? =)
И вообще, хватит извращаться, большие пакеты требуют большого кол-ва зависимостей, которые тоже придётся собрать. Если хотите что-то тяжёлое - ставьте полноценный дистр. Но если всё же приспичило сильно, то колупайте соотв. Makefile-ы, либо настраивайте связку qemu-arm + binfmt_misc
Спуститься к концу Подняться к началу
Персональная информация
GLONIUM
Добавлено 14.01.2012 19:49 Сообщение: 14
GLONIUM
0

Пункты: 567
Регистрация: 19.05.2011
кстати в builroot нашёл Python!
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 14.01.2012 20:52 Сообщение: 15
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
кстати в builroot нашёл Python!

там еще много всего полезного есть..
и если почитать документацию, то можно вычитать, как прикручивать в билдруту пакеты, не вошедшие в его состав..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
GLONIUM
Добавлено 15.01.2012 15:51 Сообщение: 16
GLONIUM
0

Пункты: 567
Регистрация: 19.05.2011
Это уже интересно! А не подскажите куда копать?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 15.01.2012 17:05 Сообщение: 17
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Это уже интересно! А не подскажите куда копать?

дак известно куда - в интернет..
например сюда гнездо билдрута
ну и погуглить иногда помогает.. форумы, там, почитать..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
SmileGobo
Добавлено 26.01.2012 14:55 Сообщение: 18
SmileGobo
0

Пункты: 202
Регистрация: 25.01.2012
Мне вот тоже пришлось изучить средства кросс компиляции. Я использую codesourcey lite arm-none-linux-gnueabi компиляторы. Программы скомпилированные со статической линковкой прекрасно работают, а для того что бы бинарники работали без -static необходимо установить так называемый рантайм(библиотеки и утилиты для запуска динамических библиотек и исполняемых модулей типа ldconfig)
https://sourcery.mentor.com/sgpp/lite/arm/portal/doc12987/getting-started.pdf
В этом мане расписано, что можно установить этот райнтайм отдельно, чтобы не завалить остальной софт уже собранный под эту систему.
При этом компилить надо с ключиками -rpath --dynamic-linker указывая пути к либам и ldconfig вот как правильно установить рантайм я не пойму - линукс я плохо знаю. Может кто прояснить этот вопрос?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 26.01.2012 15:39 Сообщение: 19
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Цитата

В этом мане расписано, что можно установить этот райнтайм отдельно, чтобы не завалить остальной софт уже собранный под эту систему.


Для начала разберитесь - что вы боитесь завалить. Если собираете buildroot так называемый рантайм - это содержимое /lib + /usr/lib (библиотеки из состава glibc|eglibc|uclibc + gcc) - копируется автоматически и эти библиотеки являются общими для всех приложений. glibc и eglibc _бинарно совместимы_, uclibc и glibc|eglibc не совместимы бинарно. В принципе апгрейд libc не должен приводить к каким-то последствиям.
Спуститься к концу Подняться к началу
Персональная информация
SmileGobo
Добавлено 26.01.2012 15:48 Редактировалось 26.01.2012 15:49 Сообщение: 20
SmileGobo
0

Пункты: 202
Регистрация: 25.01.2012
Я хочу чтобы динамические библиотеки glibc идущие в комплекте с тулчейном, были доступны моим приложениям, и были доступны исполняемые файлы навроде ldconfig(такой же файл есть в текущем glibc и они отличаются размерами) Заменять я все же не хотел бы так как не представляю какой софт и как придется пересобирать на целевой системе
ЗЫ Buildroot я не пользую пока
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux