Buildroot toolchain для BBB: ошибка версии gclib - PullRequest
0 голосов
/ 30 мая 2019

Я пытался выполнить кросс-компиляцию с компьютера Debian для BeagleBone Black, и мне удалось создать образец «hello-world» и собрать wxWidgets, но когда я скомпилировал приложение wxWidgets («минимальный»)пример) мне не удалось, потому что я не смог найти, как получить и связать необходимые библиотеки для armhf (GTK +, X11 и т. д. ... см. мой вопрос здесь )

Я нашел страницу, объясняющую, как использовать BuildRoot для компиляции Raspberry, поэтому я выбрал этот маршрут и смог настроить и создать «хост», который сначала скомпилировал wxWidgets, и «образец минимального "приложения следующий.

Проблема в том, что на моем BBB он не запускается, потому что другая версия gclib

debian@beaglebone:~$ ./minimal
./minimal: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.28' not found (required by ./minimal)

debian@beaglebone:~$ ldd --version
ldd (Debian GLIBC 2.24-11+deb9u3) 2.24
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

Итак, я снова бьюсь головой о стену.Какие опции я должен использовать в BuildRoot, чтобы иметь возможность использовать тот же самый gcc (и все необходимые библиотеки, которые я не знаю, на что мне смотреть), которые присутствуют в моем BBB?

Linux version 4.9.88-ti-r111 (root@b9-am57xx-beagle-x15-2gb) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP PREEMPT Sun Apr 22 08:04:34 UTC 2018
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516

1 Ответ

0 голосов
/ 31 мая 2019

Похоже, вы строите в одной среде и работаете в другой среде.

Это похоже на компиляцию одного дистрибутива и попытку запуска в другом дистрибутиве.
Или даже скомпилировать один дистрибутив и использовать другой для запуска - например, Debian Джесси против Stretch .

Еще одно свидетельство того, что вы упомянули:

  • BuildRoot как среда сборки
  • debian@beaglebone и ldd (Debian GLIBC 2.24-11+deb9u3) 2.24

Основной конфликт версий заключается в том, что BuildRoot и Debian 9 используют разные версии libc (и других библиотек)

Правильный способ решения этой проблемы - создание в соответствующей среде. В этом случае это будет Debian 9 - либо как собственно дистрибутив, либо, по крайней мере, как chroot. Пакет, который вы должны установить:
crossbuild-essential-armhf
Это даст вам необходимые цепочки инструментов и зависимости.

...