1、电子书显示

1、 文字编码方式

  源文件用不同的编码方式编写,会导致执行结果不一样。
  怎么解决?编译程序时,要指定字符集
  man gcc , /charset
  -finput-charset=charset 表示源文件的编码方式, 默认以UTF-8来解析
  -fexec-charset=charset 表示可执行程序里的字时候以什么编码方式来表示,默认是UTF-8

  gcc -o a a.c //

  gcc -finput-charset=GBK -fexec-charset=UTF-8 -o utf-8_2 ansi.c

2 英文字母、汉字的点阵显示
  测试:
  A. 配置、修改内核支持把lcd.c编译进去
  cp /work/drivers_and_test_new/10th_lcd/lcd.c drivers/video/
  修改drivers/video/Makefile
  #obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o
  obj-$(CONFIG_FB_S3C2410) += lcd.o

  nfs 32000000 192.168.1.123:/work/nfs_root/uImage; bootm 32000000

  set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.1.123:/work/nfs_root/fs_mini_mdev_new ip=192.168.1.17


  B. 使用新内核启动

  在PC:
  tar xjf freetype-2.4.10.tar.bz2
  ./configure
  make
  sudo make install

  gcc -o example1 example1.c -I /usr/local/include/freetype2 -lfreetype -lm
  gcc -finput-charset=GBK -fexec-charset=UTF-8 -o example1 example1.c -I /usr/local/include/freetype2 -lfreetype -lm
  ./example1 ./simsun.ttc abc

  交叉编译:
  tar xjf freetype-2.4.10.tar.bz2
  ./configure --host=arm-linux
  make
  make DESTDIR=$PWD/tmp install

  编译出来的头文件应该放入:
  /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

  编译出来的库文件应该放入:
  /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

  把tmp/usr/local/lib/* 复制到 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
  sudo cp * /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib -d -rf
  cp *so* /work/nfs_root/fs_mini_mdev_new/lib -d


  把tmp/usr/local/include/* 复制到 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
  cp * /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include -rf
  cd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
  mv freetype2/freetype .

  arm-linux-gcc -finput-charset=GBK -o example1 example1.c -lfreetype -lm
  arm-linux-gcc -finput-charset=GBK -o show_font show_font.c -lfreetype -lm


  freetype/config/ftheader.h
  freetype2/freetype/config/ftheader.h

  arm-linux-gcc -finput-charset=GBK -fexec-charset=GBK -o show_font show_font.c -lfreetype -lm

  a. 从左边开始显示几行文字
  arm-linux-gcc -finput-charset=GBK -o show_lines show_lines.c -lfreetype -lm

3. libjpeg的使用
  一、交叉编译libjpeg
  tar xzf libjpeg-turbo-1.2.1.tar.gz
  cd libjpeg-turbo-1.2.1
  ./configure --prefix=/work/projects/13.libjpeg/libjpeg-turbo-1.2.1/tmp/ --host=arm-linux
  make
  make install

  二、交叉编译jpg2rgb.c
  2.1
  arm-linux-gcc -o jpg2rgb jpg2rgb.c -I /work/projects/13.libjpeg/libjpeg-turbo-1.2.1/tmp/include -L /work/projects/13.libjpeg/libjpeg-turbo-1.2.1/tmp/lib -ljpeg
  cp jpg2rgb /work/nfs_root/fs_mini_mdev_new
  cp libjpeg-turbo-1.2.1/tmp/lib/*so* /work/nfs_root/fs_mini_mdev_new/lib/ -d

  2.2
  把编译出来的头文件应该放入:
  /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
  :
  cd /work/projects/13.libjpeg/libjpeg-turbo-1.2.1/tmp/include
  cp * /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

  把编译出来的库文件应该放入:
  /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
  :
  cd /work/projects/13.libjpeg/libjpeg-turbo-1.2.1/tmp/lib
  cp *so* -d /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

  arm-linux-gcc -o jpg2rgb jpg2rgb.c -ljpeg

4、tslib编译使用方法

  sudo apt-get install autoconf
  sudo apt-get install automake
  sudo apt-get install libtool

  编译:
  tar xzf tslib-1.4.tar.gz
  cd tslib
  ./autogen.sh

  mkdir tmp
  echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
  ./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp
  make
  make install

  安装:
  cd tmp
  cp * -rf /nfsroot

原文地址:https://www.cnblogs.com/liusiluandzhangkun/p/8532734.html