主機平臺: UBUNTU14.04
硬件平臺:明遠智睿MY-IMX6-EK200-6Q-1G
內核版本 :linux-4.1.15
交叉編譯鏈:arm-poky-linux-gnueabi
文件系統:L4115-fsl-image-qt5-myimx6a9.tar.bz2
gsnap源碼與依賴的庫:
gsnap:
libpng:
jpeg:
zlib:
設置交叉工具鏈:
$ source /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
把源碼包複製到虛擬機後解壓:
$ tar xzvf jpegsrc.v9c.tar.gz
$ tar xzvf libpng-1.6.37.tar.gz
$ tar xzvf zlib-1.2.11.tar.gz
$ mkdir gsnap
$ cd gsnap/
$ mkdir jpeg zlib png install
$ mv gsnap.c /home/myzr/gsnap/install/
jpeg庫編譯安裝:
$ cd ../jpeg-9c/
$ ./configure --host=arm-poky-linux-gnueabi --prefix=/home/myzr/gsnap/jpeg/
$ make
$ make install
zlib庫編譯安裝:
$ cd ../zlib-1.2.11/
$ ./configure --prefix=/home/myzr/gsnap/zlib/
$ make
$ make install
png庫編譯安裝:
$ cd ../libpng-1.6.37/
$ ./configure --host=arm-poky-linux-gnueabi --prefix=/home/myzr/gsnap/png/
$ make
$ make install
gsnap編譯:
$ cd ../gsnap/install/
$ $CC gsnap.c -o gsnap -L/home/myzr/gsnap/jpeg/lib/ -I/home/myzr/gsnap/jpeg/include/ -L/home/myzr/gsnap/zlib/lib/ -I/home/myzr/gsnap/zlib/include/ -L/home/myzr/gsnap/png/lib/ -I/home/myzr/gsnap/png/include/ -lpng -ljpeg -lz -lm
將編譯生成的gsnap可執行文件複製到開發板文件系統的/usr/bin/目錄
將
/home/myzr/gsnap/jpeg/lib
/home/myzr/gsnap/png/lib
/home/myzr/gsnap/zlib/lib
目錄下的動態庫複製到開發板文件系統的/usr/lib目錄
將
/home/myzr/gsnap/jpeg/include
/home/myzr/gsnap/png/include
/home/myzr/gsnap/zlib/include
目錄下的頭文件複製到開發板文件系統的/usr/include目錄
複製好後,執行測試程序得到當前屏幕的截圖:
# gsnap fb.jpg /dev/fb0
當前屏幕截圖 fb.jpg :