Помогите с кросс-компиляцией для ARM
Недавно я пытался кросс-компилировать программы для ARM. Тем не менее, когда я бегу make
Я всегда получаю сообщение об ошибке в течение минуты или меньше, что говорит что-то вроде
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lgio-2.0.
Меня смущает то, что я получаю эту ошибку каждый раз, когда пытаюсь выполнить кросс-компиляцию программы (за исключением того, что не всегда говорится, что она не может найти -lgio-2.0. У нее тоже есть проблемы с поиском других вещей). Я что-то не так делаю? Почему всегда эта ошибка? Единственная программа, которую я смог успешно кросс-компилировать, это bash, но у меня были проблемы со всем остальным. Что я делаю? У меня установлены все библиотеки и все остальное, так как я могу нормально компилировать программы.
2 ответа
Как упомянуто Муру. Вам необходимо установить архитектуру ARM этой библиотеки. Однако они не перечислены на сайте http://packages.ubuntu.com/. Кроме того, так легко управлять зависимостями вручную.
Примечание: настройка chroot
среда, я обнаружил странное поведение, когда я добавил armhf
архитектура для моей Ubuntu 15.04 amd64. я использовал dpkg --add-architecture=armhf
, APT начинают жаловаться на сломанный пакет wine
и попытался удалить все i386
пакеты.
Добавить новый исходный файл
sudo nano /etc/apt/sources.list.d/arm-repo.list
Добавьте источник архитектуры, которую вы хотите, и выпустите, которая у вас есть.
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports trusty main universe
Проверьте доступную арку здесь: http://ports.ubuntu.com/ubuntu-ports/dists/trusty/main/ поскольку вы можете просматривать вверх / вниз для различных выпусков.
Обновить список пакетов
sudo apt-get update
Добавить конфигурацию dpkg
sudo nano /etc/dpkg/dpkg.cfg.d/multiarch
с этой линией
foreign-architecture armhf
Установите необходимые пакеты по мере необходимости, например:
sudo apt-get install libglib2.0-0:armhf
Рекомендации:
Вы также можете скачать пакет, скомпилировать его с помощью arm-linux-gnueabihf и поместить библиотеки в соответствующие папки каталога компилятора arm-linux-gnueabihf в /usr/