Я прочитал Как создать GCC 4.7 toolchain для кросс-компиляции? и успешно создали простую тестовую программу, которая работает на моем RPi.
Для этого мне нужно было запустить arm-unknown-linux-gnueabi-gcc hello.c -o hello
на своем рабочем столе x86 и scp
исполняемый файл для моего RPi. Это медленно и хлопотно. Я предпочел бы контролировать компиляцию из моего RPi.
Я читал о том distcc
, что может быть использовано для распространения компиляции с одной машины на другую.
Как мне установить это? У меня есть и настольные компьютеры Debian / Ubuntu и Arch Linux, и обе ОС установлены на SD-карты.
debian
archlinux
cross-compilation
Алекс Чемберлен
источник
источник
export DISTCC_VERBOSE=1
Спасибо за это ! Это то, что я ищу для отладки моего distcc toolchainОтветы:
Эти инструкции предполагают, что у вас есть работающий кросс-компилятор на ведомом устройстве. Пожалуйста, прочтите Как создать GCC 4.7 toolchain для кросс-компиляции? если нет Также полезно
make
установить на мастер.Монтаж
Во-первых, мы должны установить
distcc
. Мы будем использовать готовые пакеты, поставляемые системами управления пакетами операционных систем, но вы можете установить их из исходного кода, если хотите!Debian
арочный
конфигурация
Slave - Debian / Ubuntu
Нам нужно настроить параметры в
/etc/default/distcc
. В вашем любимом редакторе откройте его как root; Я побежалsudo vim /etc/default/distcc
.Вам нужно изменить
STARTDISTCC
,ALLOWEDNETS
иLISTENER
. Предполагая, что ваш ведущий и ведомый находятся в одной подсети и эта подсеть есть192.168.0.0/24
, они должны быть установлены наКроме того, вы должны добавить путь к вашему компилятору. Я сделал это, добавив следующую строку
Запустите демон - обычно он запускается при загрузке - запустив
Мастер - Арка
Откройте
~/.distcc/hosts
в своем любимом текстовом редакторе и добавьте IP-адрес ведомых. Мойhosts
файл состоял из одной строки, которая читалась192.168.0.22
.использование
Все идет хорошо, вы должны быть в состоянии использовать distcc довольно просто. Например, чтобы собрать
hello.c
наhello.o
, бежатьПример: Hello World!
Я установил простой пример в своем домашнем каталоге, который состоял из 2 файлов.
Запуск
make hello
будет компилироваться локально; Вы должны сделать это как быстрый тест в первую очередь. Давай, я подожду.Запуск
make hello CC="distcc arm-unknown-linux-gnueabi-gcc"
запустит распределенную компиляцию.Отладка
Мне потребовалось некоторое время, чтобы заставить это работать правильно, и лучший инструмент отладки, который я нашел, был простой переменной среды. если ты
в
distcc
выходные нагрузки клиент полезной информации.Это длинный пост, поэтому мы будем благодарны за любые отзывы. Я надеюсь, что я запомнил все шаги!
источник