嵌入式截圖工具 gsnap移植

2021-10-09 07:40:51 字數 2188 閱讀 6753

最近乙個嵌入式linux專案中需要使用到截圖,find了乙個不錯的工具gsnap,但需要交叉編譯移植後才能使用,記錄下移植過程。

目標機gcc版本:arm-none-linux-gnueabihf-gcc  gcc version 4.9.4

gsnap是根據linux 系統的 framebuffer 機制,讀取/dev/fb0檔案裡螢幕色彩的原始資料轉化為可識別的jpg或者png檔案,編譯gsnap需依賴libjpeg、zlib、libpng原始碼。

1.新建gsnap目錄,解壓依賴的原始碼

2.在gsnap目錄下新建install目錄用於安裝編譯後生成的檔案

3.交叉編譯

(1).編譯jpeg,進入jpeg-9d目錄:

依次執行

./configure --host=arm-none-linux-gnueabihf --prefix=/home/yh/gsnap/install/jpeg

make

make install

(2).編譯zlib,進入zlib-1.2.11目錄:

prefix=/home/yh/gsnap/install/zlib cc=arm-none-linux-gnueabihf-gcc ./configure

make

make install

(3).編譯png,進入libpng-1.6.37目錄:

拷貝makefile並更改為以下內容 執行 cp ./scripts/makefile.linux makefile

執行make前將pngpriv.**件130行改為(不更改make通不過。報*** [pngtest] error 1 )

4.編譯gsnap,進入gsnap目錄,更改makefile 連線編譯生成的相關檔案

執行make all

可以看到生成了gsnap可執行檔案

5.驗證

將gsnap拷貝到目標機器/usr/bin,執行截圖操作

如果缺少libpng16.so.16檔案

將編譯出來的../install/png/lib目錄下libpng16.so.16.37檔案重新命名為libpng16.so.16拷貝到目標機usr/lib目錄下即可

執行 gsnap radio.jpg /dev/fb0  可以看到生成了radio.jpg檔案,截圖成功。

將radio.jpg拷貝到主機上,顯示效果如下

嵌入式移植

深度學習嵌入式移植 1 移植原因 演算法必須在優化後的硬體上執行,因為學習成千上萬的資料可能需要長達幾周的時間。移動端其實不需要做tranning,只需要進行propagating,所以問題集中在移動端能不能存放並執行更大的network。2 常見的移動端開發裝置 nvidiajetsontx1 t...

嵌入式產品 移植

1.檢查記憶體是否夠大,不夠大編譯時會崩潰,彈出其它錯誤提示 2.解壓原始碼時用對應的命令解壓,不要偷懶用 xvf 3.make install 安裝時用sudo許可權1.解壓原始碼 2.配置 configure 不加引數採用預設安裝,安裝到 usr local prefix temp 安裝目錄為 ...

嵌入式GUI移植小結

幾天來,移植了乙個小型的gui,小,但是五臟俱全,基本體現了gui的理念,值得推薦學習。下面就移植的方方面面總結如下 1.gui的設計理念 我們知道,當我們不去動鍵盤,不去動觸控螢幕滑鼠的時候,是不會有gui動作的,中斷訊號時鐘訊號除外。所以,gui的設計出發點,實際上是事件,或者說是訊號,當然也可...