Помогите с кросс-компиляцией для 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 пакеты.

  1. Добавить новый исходный файл

    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/ поскольку вы можете просматривать вверх / вниз для различных выпусков.

  2. Обновить список пакетов

    sudo apt-get update
    
  3. Добавить конфигурацию dpkg

    sudo nano /etc/dpkg/dpkg.cfg.d/multiarch
    

    с этой линией

    foreign-architecture armhf
    
  4. Установите необходимые пакеты по мере необходимости, например:

    sudo apt-get install libglib2.0-0:armhf
    

Рекомендации:

Вы также можете скачать пакет, скомпилировать его с помощью arm-linux-gnueabihf и поместить библиотеки в соответствующие папки каталога компилятора arm-linux-gnueabihf в /usr/

Другие вопросы по тегам