像我們學習一門編語言那樣,從碼乙個hello world應用程式開始我們的zeta linux之旅!嵌入式產品常伴有帶顯示與不帶顯示之分,即使同一類產品,也會存在是否有顯示的形態差異。比如行車記錄儀,有帶顯示屏的小機及後視鏡,也有不帶顯示屏的口紅機及隱藏式記錄儀。下文將展示如何編寫乙個不含gui的在終端視窗列印hello world的程式,以及乙個包含嵌入式gui的在顯示屏上通過gui控制顯示hello world的程式。
乙個zeta linux程式/模組至少包含兩部分,makefile檔案zeta.in以及原始碼檔案。本例中,應用程式名字為demo_terminal_helloworld,建立相應的檔案:
mkdir demo_terminal_helloworld/
touch zeta.in main.c
編寫makefile檔案:
target_path:=
$(call my-dir)
include $(clear_vars)
target_inc:=
target_src:= main.c
target_cppflags += -fpic -wall
target_cflags += -fpic -wall
target_module := demo_terminal_helloworld
include $(build_bin)
編寫原始碼檔案:
#include
#include
intmain()
編譯應用程式:
zmake zeta.in
將編譯生成的可執行檔案通過adb推送到裝置裡面執行,可在終端輸出"hello world."。
zeta linux支援多種gui引擎,目前在zeta上順利執行使用的gui有minigui、direcefb、qt、littlevgl。本例中使用minigui。使用minigui需要在zeta.in中顯式指定程式所用的minigui動態庫,zeta.in如下:
target_path :=
$(call my-dir)
include $(env_clear)
target_src := ./main.c
target_shared_lib += libminigui_ths
target_module := demo_gui_helloworld
include $(build_bin)
編寫原始碼檔案,在視窗中輸出hello world!
#include
#include
#include
#include
#include
static bitmap bmp_bkgnd;
static
int hellowinproc (hwnd hwnd,
int message, wparam wparam, lparam lparam)
case msg_create:
case msg_close:
}return defaultmainwinproc (hwnd, message, wparam, lparam);}
intminiguimain
(int argc,
const
char
* ar**)
unloadbitmap
(&bmp_bkgnd)
; mainwindowthreadcleanup (hmainwnd)
;return0;
}#ifndef _mgrm_processes
#include
#endif
將編譯生成的可執行檔案通過adb推送到裝置裡面執行,可在顯示屏上顯示"hello world."。 我是乙個碼農
考大學的事情,不知道選什麼專業,也不知道能上什麼學校,很沒底氣的選了一所挖石油的大學學計算機。結果被錄取了,結果就學了計算機,結果就走上了碼農的道路。一路走來,算算年頭,我家門口的一顆李子樹,都由拇指粗細長成碗口粗細了。在我家果園的果子經歷一年又一年四季的時候,我在帝都經歷第乙份工作,08年奧運會,...
floyd的乙個應用
poj3660 cow conte include 題目分析 如果 奶牛能力確定,則贏它的奶牛數 輸給它奶牛數 n 1 define max 5555 bool a max max a x y 1 表示 x 與 y 比賽,x勝 int b max c max c i 表示第i個奶牛贏過的奶牛數 b ...
開發乙個React Electron應用
最近用react electron開發了乙個rss閱讀器,開源在 github.com breeze2 bre 這裡記錄一下大致的開發過程。以普通的react應用做基礎,一步步初始化專案。預先安裝yarn工具,用yarn來建立乙個react應用專案,假設名字叫demo,再引入electron依賴。c...