1. Что такое кросс-компиляция?
2. Зачем нужна кросс-компиляция?
3. Что нужно для кросс-компиляции?
3. Как создать исполняемый файл Raspberry Pi и загрузить его на Raspberry Pi?
Предисловие
При ежедневном написании программ, если целевая плата разработки не имеет компилируемой платформы, ее необходимо кросс-компилировать на другой платформе в код, который сможет запускать целевая плата разработки. на плате разработки Raspberry Pi.
1. Что такое кросс-компиляция?
Кросс-компиляция заключается в создании кода на одной платформе, который может работать на другой платформе. При изучении c51 мы часто используем keil для написания программ. Keil работает в Windows и, наконец, генерирует файл xx.hex. Последний исполняемый файл запускается на c51 вместо Windows. Этот процесс требует кросс-компиляции. Просто keil интегрирует кросс -внутренняя компиляция, которую мы не видим.
Короче говоря, кросс-компиляция заключается в создании исполняемого кода для целевой платформы на одной платформе, например c51 и stm32.Процесс кросс-компиляции находится в рамках keil.
2. Зачем нужна кросс-компиляция?
Причина кросс-компиляции проста: платформа не позволяет или не может установить нужный нам компилятор, например C51.
Потому что ресурсы на целевой платформе скудны и не могут запустить нужный нам компилятор.
Разве Raspberry Pi не нуждается в кросс-компиляции из-за своих мощных функций? Ответ — да. Иногда Raspberry Pi — это потому, что целевая платформа еще не определена. У него даже нет операционной системы, и нет никакой возможности говорить о запуске какого-либо компилятора. Операционная система также представляет собой код и ее необходимо скомпилировать!
3. Что нужно для кросс-компиляции?
Кросс-компилятор, цепочка инструментов кросс-компиляции.
Давайте представим установку цепочки инструментов кросс-компиляции:
1. https://github.com/raspberrypi/
Перейдите на сайт, чтобы загрузить необходимые инструменты.
2. После успешной загрузки вы можете скопировать его в рабочий каталог Ubuntu.
3. Используйте команду для распаковки файла tools-master.zip.
4. Войдите в следующий каталог, чтобы найти множество команд, поскольку для Raspberry Pi требуется Arm-linux-gnueabihf-gcc.
cd /home/aqh/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
5. Настройте переменные среды
pwd получает текущий путь
/home/aqh/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
echo $PATH получает значение текущей переменной среды
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games: вам не нужно обращать внимание на следующие, вам нужно только нужно обратить внимание на предыдущие.
экспортировать ПУТЬ=
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/CLC/lessonPI/tools-master/arm-bcm2708/ gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
Этот метод конфигурации действует временно.Если мы случайно закроем терминал или откроем другой терминал, команда кросс-компиляции станет недействительной.
Вам необходимо раз и навсегда перейти на постоянный метод настройки.
Измените скрытый файл .bashrc vi /home/aqh/.bashrc в рабочем каталоге.
Добавьте в последнюю строку файла:
экспортировать ПУТЬ=
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/CLC/lessonPI/tools-master/arm-bcm2708/ gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
Примечание. Вышеупомянутые переменные среды связаны знаком равенства.
Наконец, загрузите файл конфигурации, и конфигурация немедленно вступит в силу.
источник /home/CLC/.bashrc
Введите «arm-linux-gnueabihf-gcc -v» в окне терминала, чтобы проверить успешность установки. В случае успеха вы сможете просмотреть номер версии.
3. Как создать исполняемый файл Raspberry Pi и загрузить его на Raspberry Pi?
1. Скомпилируйте и сгенерируйте исполняемую программу Raspberry Pi.
рука-linux-gnueabihf-gcc xxx.c -o xxx
Используйте приведенную выше команду для создания xxx из файла xxx.c, и Raspberry Pi сможет запустить эту программу xxx.
2. Загрузите исполняемую программу на Raspberry Pi для запуска.
scp xxx [email protected]:/home/pi
scp — Команда xxx — Имя файла
[email protected] — имя пользователя Raspberry Pi@сетевой адрес Raspberry Pi.
/home/pi — абсолютный путь к Raspberry Pi.
4. Как скомпилировать программу с библиотекой WiringPi?
1. Установите библиотеку WiringPi для Ubuntu.
2. Сначала кросс-компилируем библиотеку WiringPi.Скомпилированная библиотека подходит для Raspberry Pi.Библиотека, связанная при кросс-компиляции программы, подходит для Raspberry Pi.
3. Укажите путь к библиотеке через -I (заглавная i) -L -l (строчная L), чтобы связать библиотеку.
Метод Raspberry Pi:
1. Сначала я скопировал libwiringPi.so.2.50 из Raspberry Pi в Ubuntu
2. Создайте мягкую ссылку на этот файл библиотеки:
Мягкая ссылка: 1. Файлы программных ссылок имеют ярлыки, аналогичные Windows.
2. В символической ссылке файл на самом деле является текстовым файлом, содержащим информацию о местоположении другого файла.
3. Сгенерируйте образ файла в выбранном вами месте, который не будет занимать дисковое пространство.
Создать мягкую ссылку:
ln -s libwiringPi.so.2.50 libwiringPi.so С помощью ls -l вы обнаружите, что файл .so будет иметь стрелку, указывающую на файл библиотеки.
Создать жесткую ссылку:
ln libwiringPi.so.2.50 libwiringPi.so Он создаст файл того же размера, что и исходный файл, в выбранном вами месте.
Справочник по мягким и жестким ссылкам: команда создания соединения Linux ln -s создает мягкое соединение - Чжан На нана - Blog Park