Capítulo 4 Compilar otras aplicaciones
1.1 Obtener el código fuente
Proporcionamos estos programas:
Colóquelos en GITEE en la dirección: https://gitee.com/weidongshan/openharmony_for_imx6ull
Para mayor comodidad, puede ejecutar los siguientes comandos en Ubuntu para descargarlos directamente:
cd /home/book
git clone https://gitee.com/weidongshan/openharmony_for_imx6ull.git
Esto obtendrá este directorio: / home / book / openharmony_for_imx6ull
1.2 Compilar el programa
Suponiendo que se haya descargado el directorio / home / book / openharmony_for_imx6ull, ejecute el siguiente comando para compilar:
cd /home/book/openharmony_for_imx6ull/apps
for i in $(ls); do cd $i; make; cd -; done
Explique el comando anterior a continuación.
Estos directorios se enumeran en $ (ls): digital_photo_frame fb_test freetype hello.
Para cada elemento "$ i", ejecute (haga) estos comandos: cd $ i; make; cd -. Solo ingrese el
Directorio, ejecute el comando make para volver al directorio superior.
Por supuesto, puede ingresar esos subdirectorios usted mismo y ejecutar el comando make manualmente.
Nota:
(1) Los dos programas, freetype y digital_photo_frame, necesitan utilizar los archivos de la biblioteca hi3518ev300 compilados anteriormente.
(2) Por lo tanto, primero debe ejecutar "python build.py ipcamera_hi3518ev300 -b debug"
(3) Si la ruta del código fuente de Hongmeng no es / home / book / openharmony, entonces debe modificar el Makefile, modificar la ruta de la siguiente manera:
1.3 Copiar el programa a rootfs
Estos dos programas no dependen de otras bibliotecas dinámicas: hello y fb_test; pero el programa freetype depende de libfreetype.so, y el programa digital_photo_frame depende de libfreetype.so y libjpeg.so.
¿Dónde están estas bibliotecas dinámicas? Tomemos una coincidencia: antes, "python build.py ipcamera_hi3518ev300 -b debug" se ejecutaba en "1.2.4 Compile Official Version", lo que generaba este archivo de biblioteca para la placa de desarrollo hi3518ev300. hi3518ev300 e imx6ull pertenecen a la arquitectura Cortex A7, por lo que imx6ull puede usar estas bibliotecas. Después de perfeccionar el código de imx6ull en el futuro, no hay necesidad de tal engaño.
Ejecute el siguiente comando para copiar el programa:
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 Hacer rootfs.jffs2
Ejecute los siguientes comandos:
cd /home/book/openharmony/kernel/liteos_a/out/imx6ull/
mkfs.jffs2 -s 0x10000 -e 0x10000 -d rootfs -o rootfs.jffs2
Coloque el rootfs.jffs2 obtenido en el directorio de archivos de la herramienta de grabación, y puede iniciarlo con la herramienta de grabación:
1.5 Ejecutar APP
Estas aplicaciones se pueden ejecutar directamente, si se necesitan parámetros, solicitará el uso.
Nota: Debes usar una ruta relativa, como "./bin/hello"; no puedes usar una ruta absoluta, como "/ bin / hello".
1.5.1 fb_test
Ejecute los siguientes comandos:
./bin/fb_test /dev/fb0
El efecto es el siguiente:
1.5.2 show_line
Ejecute los siguientes comandos:
./bin/show_line /simsun.ttc 230 230 100
El efecto es el siguiente:
1.5.3 digital
Ejecute los siguientes comandos:
./bin/digitpic /simsun.ttc
Puede hacer clic en el icono en la pantalla y el efecto es el siguiente: Grupo de intercambio de tecnología de
descarga de texto completo
(desarrollo de
Hongmeng / Linux / integrado / controlador / descarga de datos) Grupo QQ: 869222007