Как скомпилировать приложение Hongmeng
Как скомпилировать приложение Hongmeng

Онлайн-класс:https://www.100ask.net/index(Просмотр курса) Аргумент  алтарь:http://bbs.100ask.net/(Академические вопросы и ответы) открыть волосы тарелка:https://100ask.taobao.com/ (Таобао) https://weidongshan.tmall.com/(Тмолл)


Версия

дата

автор

иллюстрировать

V1

2020

Вэй Дуншань

Техническая документация

Глава 4. Компиляция других приложений

1.1 Получить исходный код

Мы предлагаем такие программы:

Выложите это на GITEE,Адрес:https://gitee.com/weidongshan/openharmony_for_imx6ull Для удобства вы можете выполнить следующую команду в Ubuntu для прямой загрузки:

Язык кода:javascript
копировать
cd  /home/book
git  clone  https://gitee.com/weidongshan/openharmony_for_imx6ull.git

Это получит этот каталог: /home/book/openharmony_for_imx6ull

1.2 Компилятор

Предполагая, что каталог /home/book/openharmony_for_imx6ull загружен, выполните следующую команду для компиляции:

Язык кода:javascript
копировать
cd  /home/book/openharmony_for_imx6ull/apps
for i in $(ls); do cd $i; make; cd -; done

Объясните приведенную выше команду ниже.

Эти каталоги перечислены в $(ls): digital_photo_frame fb_test freetype hello.

для каждого из этих“i", выполните (сделайте) эти команды: cdi; make; cd -. Просто введите

Каталог, выполните команду make, чтобы вернуться в каталог верхнего уровня. Конечно, вы можете войти в эти подкаталоги самостоятельно и выполнить команду make вручную.

Уведомление: (1) Две программы freetype и digital_photo_frame должны использовать файл библиотеки hi3518ev300, скомпилированный ранее. (2) Итак, вам нужно выполнить «python build.py ipcamera_hi3518ev300 -b debug” (3) Если путь к исходному коду Hongmeng отличается от /home/book/openharmony, вам необходимо изменить Makefile, измените путь следующим образом:

1.3 Копируем программу в rootfs

Эти две программы не зависят от других динамических библиотек: hello и fb_test, но программа freetype зависит от libfreetype.so, а программа digital_photo_frame зависит от libfreetype.so и libjpeg.so;

Где эти динамические библиотеки? Возьмем совпадение Ранее в "1.2.4". Скомпилируйте официальную версию, выполнив "python build.py ipcamera_hi3518ev300 -b debug", он генерирует этот файл библиотеки для платы hi3518ev300открытьволосы. hi3518ev300 и imx6ull принадлежат одной коре Архитектура A7, поэтому imx6ull может использовать эти библиотеки. После улучшения кода imx6ull в будущем необходимость в таких ухищрениях отпадет.

Выполните следующую команду, чтобы скопировать программу:

Язык кода:javascript
копировать
cd  /home/book/openharmony_for_imx6ull/apps
# скопировать приложение
cp hello/hello  /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/bin
cp fb_test/fb_test  /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/bin
cp freetype/show_line /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/bin
cp digital_photo_frame/digitpic /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/bin
# Копирование файлов шрифтов
cp freetype/simsun.ttc  /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/
# Скопировать значок цифровой фоторамки
cp digital_photo_frame/rootfs /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/  -rf
# Копирование файлов библиотеки
cp /home/book/openharmony/out/ipcamera_hi3518ev300/libs/usr/libfreetype.so /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/usr/lib/
cp /home/book/openharmony/out/ipcamera_hi3518ev300/libs/usr/libjpeg.so /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/usr/lib/

1.4 Создайте rootfs.jffs2

Выполните следующую команду:

Язык кода:javascript
копировать
cd  /home/book/openharmony/kernel/liteos_a/out/imx6ull/
mkfs.jffs2  -s 0x10000 -e 0x10000 -d rootfs -o rootfs.jffs2

Поместите полученный rootfs.jffs2 в каталог файлов инструмента программирования, после чего его можно будет запустить с помощью инструмента программирования:

1.5 Запуск приложения

Эти приложения можно запускать напрямую. Если требуются параметры, будет предложено использовать их. Уведомление:Необходимо использовать относительные пути.,Например, нельзя использовать абсолютные пути «./bin/hello»;,Например "/bin/привет"

1.5.1 fb_test

Выполните следующую команду:

Язык кода:javascript
копировать
./bin/fb_test /dev/fb0

Эффект следующий:

1.5.2 show_line

Выполните следующую команду:

Язык кода:javascript
копировать
./bin/show_line /simsun.ttc 230 230 100

Эффект следующий:

1.5.3 digitpic

Выполните следующую команду:

Язык кода:javascript
копировать
./bin/digitpic /simsun.ttc

Вы можете нажать на иконку на экране Эффект следующего:


Технологический форум Baiwen.com: http://bbs.100ask.net/

Официальная вики Baiwen.com (загрузка данных): http://wiki.100ask.org/

Онлайн занятия: https://www.100ask.net/index

Baiwen.com открыть доску: Таобао:https://100ask.taobao.com/ Тмолл:https://weidongshan.tmall.com/

boy illustration
PHP добавляет текстовый водяной знак или водяной знак изображения к изображениям – метод инкапсуляции
boy illustration
Интерпретация быстрой таблицы (TLB)
boy illustration
Интерфейс WeChat API (полный) — оплата WeChat/красный конверт WeChat/купон WeChat/магазин WeChat/JSAPI
boy illustration
Преобразование Java-объекта в json string_complex json-строки в объект
boy illustration
Примените сегментацию слов jieba (версия Java) и предоставьте пакет jar
boy illustration
matinal: Самый подробный анализ управления разрешениями во всей сети SAP. Все управление разрешениями находится здесь.
boy illustration
Коротко расскажу обо всем процессе работы алгоритма сборки мусора G1 --- Теоретическая часть -- Часть 1
boy illustration
[Спецификация] Результаты и исключения возврата интерфейса SpringBoot обрабатываются единообразно, поэтому инкапсуляция является элегантной.
boy illustration
Интерпретация каталога веб-проекта Flask
boy illustration
Что такое подробное объяснение файла WSDL_wsdl
boy illustration
Как запустить большую модель ИИ локально
boy illustration
Подведение итогов десяти самых популярных веб-фреймворков для Go
boy illustration
5 рекомендуемых проектов CMS с открытым исходным кодом на базе .Net Core
boy illustration
Java использует httpclient для отправки запросов HttpPost (отправка формы, загрузка файлов и передача данных Json)
boy illustration
Руководство по развертыванию Nginx в Linux (Centos)
boy illustration
Интервью с Alibaba по Java: можно ли использовать @Transactional и @Async вместе?
boy illustration
Облачный шлюз Spring реализует примеры балансировки нагрузки и проверки входа в систему.
boy illustration
Используйте Nginx для решения междоменных проблем
boy illustration
Произошла ошибка, когда сервер веб-сайта установил соединение с базой данных. WordPress предложил решение проблемы с установкой соединения с базой данных... [Легко понять]
boy illustration
Новый адрес java-библиотеки_16 топовых Java-проектов с открытым исходным кодом, достойных вашего внимания! Обязательно к просмотру новичкам
boy illustration
Лучшие практики Kubernetes для устранения несоответствий часовых поясов внутри контейнеров
boy illustration
Введение в проект удаления водяных знаков из коротких видео на GitHub Douyin_TikTok_Download_API
boy illustration
Весенние аннотации: подробное объяснение @Service!
boy illustration
Пожалуйста, не используйте foreach для пакетной вставки в MyBatis. Для 5000 фрагментов данных потребовалось 14 минут. .
boy illustration
Как создать проект Node.js с помощью npm?
boy illustration
Mybatis-plus использует typeHandler для преобразования объединенных строк String в списки списков.
boy illustration
Не удалось установить программное обеспечение Mitsubishi. Возможно, возникла проблема с реестром.
boy illustration
Разрешение ошибок проекта SpringBoot 3 mybatis-plus: org.apache.ibatis.binding.BindingException: неверный оператор привязки
boy illustration
Более краткая проверка параметров. Для проверки параметров используйте SpringBoot Validation.
boy illustration
Поиграйтесь с интеграцией Spring Boot (платформа запланированных задач Quartz)