Hongmengシステムは最初のAPPをコンパイルします:こんにちは

第3章最初のAPPをコンパイルする:こんにちは

1.1 Clang、LLVM、GCCの概要

UbuntuでPC用のプログラムをコンパイルするときに、次のコマンドを実行します。

gcc  -o  hello   hello.c

UbuntuでARMボード用のプログラムをコンパイルするときに、次のコマンドを実行します(gccプレフィックスは異なる場合があります)。

arm-linux-gcc  -o  hello   hello.c

Liteos-aでは、LLVMを使用してプログラムをコンパイルします。LLVMの本来の意味は、低レベルの仮想マシンである「低レベルの仮想マシン」です。しかし、現在ではコンパイラ(コンパイラ)のフレームワークシステムに発展しています。簡単に言えば、LLVMはGCCを置き換えることができ、LLVMは拡張が容易で、より優れたパフォーマンスを提供できます。

LLVMのフレームワークは次のとおりです
ここに画像の説明を挿入
。Clangは「フロントエンド」(フロントエンド)であり、字句解析、文法解析を実行するために使用されます。簡単に言えば、構文エラーのチェック、ヘッダーファイルのインクルード、マクロの展開です。

中央にはオプティマイザがあり、フロントエンドによって分析されたコードをLLVM IR(中間表現)に変換します。IRはマシンとは関係なく、一連の最適化を簡単に追加できます。

最適化後に得られたIRは、「Backend」により各種マシンのマシンコードに変換されます。

上記のコンテンツはインターネットからのものですが、ClangやLLVMについてはあまり理解していないので、簡単に紹介しておきます。

1.2 helloプログラムをコンパイルする

Clangを使用する場合、多くのパラメーターを指定する必要があります。プログラムをコンパイルするCPUのタイプ(ARMまたはRisc-V)、CPUアーキテクチャー(cortex A7またはcortex A15)とは何か、ヘッダーファイル/ライブラリファイルはどこにありますか?

Liteos-a用のプログラムをコンパイルするとき、helloプログラムを例にとると、次のコマンドを実行できます。

cd  /home/book/openharmony_for_imx6ull/apps/hello
clang -target arm-liteos   --sysroot=/home/book/openharmony/prebuilts/lite/sysroot/  \
   -o  hello   hello.c

上記のコマンドのsysrootパラメーターでは、標準ヘッダーファイルとライブラリファイルのディレクトリが指定されています。

GCCのような「-I」および「-L」パラメーターを使用して、他のヘッダーファイルとライブラリファイルのディレクトリを指定することもできます。たとえば、このプログラムは後でコンパイルされます。

cd  /home/book/openharmony_for_imx6ull/apps/freetype
clang -target arm-liteos   --sysroot=/home/book/openharmony/prebuilts/lite/sysroot/  \
-I /home/book/openharmony/third_party/freetype/include \
-L /home/book/openharmony/out/ipcamera_hi3518ev300/libs/usr  \
-lfreetype \
-o show_line show_line.c

1.3 helloプログラムをrootfsに置く

helloプログラムをコンパイルしたら、それをrootfsディレクトリのbinレターに配置できます。次に例を示します。

cd  /home/book/openharmony_for_imx6ull/apps/hello
cp  hello  /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/bin

次に、rootfs.jffs2を再作成し、次のコマンドを実行します。

> cd  /home/book/openharmony/kernel/liteos_a/out/imx6ull/ mkfs.jffs2  -s
> 0x10000 -e 0x10000 -d rootfs -o rootfs.jffs2

helloプログラムが/ home / book / apps / helloディレクトリにあるとすると、操作のスクリーンショットは次のようになります。
ここに画像の説明を挿入

取得したrootfs.jffs2を書き込みツールのfilesディレクトリに配置すると、書き込みツールで起動できます。
ここに画像の説明を挿入
次の図に示すように、コマンドラインを入力した、helloプログラムを実行できます。
ここに画像の説明を挿入
注:「./bin/ hello "、絶対パス" / bin / hello "は使用できません

全文ダウンロード
テクニカルエクスチェンジグループ(
Hongmeng Development / Linux / Embedded / Driver / Data Download)QQ Group:869222007

おすすめ

転載: blog.csdn.net/thisway_diy/article/details/108666786