miniGUI小记

来源:互联网 发布:java 单线程 编辑:程序博客网 时间:2024/05/16 01:24
编译miniGUI到arm上
编译工具:arm-none-linux-gnueabi-gcc
相关文件库:从官网处下载(http://www.minigui.org/en/download/)
├── freetype-2.3.9-fm20100818.tar.gz
├── jpegsrc.v7.tar.gz
├── libmgplus-1.2.4.tar.gz
├── libminigui-gpl-3.0.12.tar.gz
├── libpng-1.2.37.tar.gz
├── mg-samples-3.0.12.tar.gz
├── minigui-res-be-3.0.12.tar.gz
└── zlib-1.2.2.tar.gz

依赖关系:
libpng (zlib);
libmgplus(libminigui)
mg-samples(libminigui,libmgplus)

============JPEG

  1. $ ./configure --target=arm-unknown-linux --host=arm-unknown-linux --prefix=/home/decuhi/miniGUI/target CC=arm-none-linux-gnueabi-gcc CPP=arm-none-linux-gnueabi-cpp LD=arm-none-linux-gnueabi-ld AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib STRIP=arm-none-linux-gnueabi-strip

  2. $ make
  3. $ make install
============FREETYPE

  1. $ ./configure --build=i686-linux --host=arm-unknown-linux --prefix=/home/decuhi/miniGUI/target CC=arm-none-linux-gnueabi-gcc CPP=arm-none-linux-gnueabi-cpp LD=arm-none-linux-gnueabi-ld AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib STRIP=arm-none-linux-gnueabi-strip

  2. $ make
  3. $ make install
============ZLIB

  1. $ ./configure --shared --prefix=/home/decuhi/miniGUI/target

  2. 修改Makefile,将编译相关的设置改成交叉工具链

  3. $ make
  4. $ make install
============LIBPNG

  1. $ cp scripts/makefile.linux Makefile
  2. 修改
  3. 21 # Utilities:
  4. 22 AR_RC=ar rc
  5. 23 CC=cc
  6. 24 MKDIR_P=mkdir -p
  7. 25 LN_SF=ln -sf
  8. 26 RANLIB=ranlib
  9. 21 # Utilities:
  10. 22 AR_RC=arm-none-linux-gnueabi-ar rc
  11. 23 CC=arm-none-linux-gnueabi-gcc
  12. 24 MKDIR_P=mkdir -p
  13. 25 LN_SF=ln -sf
  14. 26 RANLIB=arm-none-linux-gnueabi-ranlib

  15. 修改
  16. 32 prefix=/usr/local
  17. 32 prefix=/home/decuhi/miniGUI/target/
  18. 修改zlib库路径
  19. # Where the zlib library and include files are located.
  20. #ZLIBLIB=/usr/local/lib
  21. #ZLIBINC=/usr/local/include
  22. ZLIBLIB=$(prefix)/lib
  23. ZLIBINC=$(prefix)/include

  24. $ make
  25. $ make install

============LIBMINIGUI

  1. $ ./configure --build=i686-linux --target=arm-unknown-linux --host=arm-unknown-linux --prefix=/home/decuhi/miniGUI/target CC=arm-none-linux-gnueabi-gcc CPP=arm-none-linux-gnueabi-cpp CXX=arm-none-linux-gnueabi-g++ LD=arm-none-linux-gnueabi-ld AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib STRIP=arm-none-linux-gnueabi-strip

  2. 出现
  3. Going to generate license pictures ...
  4. ./configure: line 15530: ./runme.sh: No such file or directory
  5. 无视之

  6. $ vim src/newgal/pcxvfb/Makefile

  7. 修改194行,将/usr/include去掉:
  8. INCLUDES = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include
  9. -I$(abs_top_srcdir)/src/newgal/ -I/usr/include/
  10. 否则编译pcxvfb.c将出错

  1. $ make
  2. $ make install
===========LIBMGPLUS

  1. $ ./configure --target=arm-unknown-linux --host=arm-unknown-linux --prefix=/home/decuhi/miniGUI/target CC=arm-none-linux-gnueabi-gcc CPP=arm-none-linux-gnueabi-cpp CXX=arm-none-linux-gnueabi-g++ LD=arm-none-linux-gnueabi-ld AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib STRIP=arm-none-linux-gnueabi-strip

  2. $ make

  3. 出错:
  4. configure: WARNING: using cross tools not prefixed with host triplet
  5. checking pkg-config is at least version 0.9.0... yes
  6. checking for MINIGUI... configure: error: Package requirements (minigui >= 3.0.10) were not met:

  7. No package 'minigui' found

  8. Consider adjusting the PKG_CONFIG_PATH environment variable if you
  9. installed software in a non-standard prefix.

  10. Alternatively, you may set the environment variables MINIGUI_CFLAGS
  11. and MINIGUI_LIBS to avoid the need to call pkg-config.
  12. See the pkg-config man page for more details.

  13. 解决办法:
  14. export PKG_CONFIG_PATH=/home/decuhi/miniGUI/target/lib/pkgconfig/

  15. 继续make

  16. $ make install

==============MG-SAMPLES

  1. $ ./configure --target=arm-unknown-linux --host=arm-unknown-linux --prefix=/home/decuhi/miniGUI/target CC=arm-none-linux-gnueabi-gcc CPP=arm-none-linux-gnueabi-cpp LD=arm-none-linux-gnueabi-ld AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib STRIP=arm-none-linux-gnueabi-strip CFLAGS="-I/home/decuhi/miniGUI/target/include"
  2. $ make
  3. $ cd src/ # 生成的可执行程序放在此目录,需手动复制
==============MINIGUI-RES

  1. 这些资源与平台无关,大致是一些图片
  2. $ ./configure --prefix=/home/decuhi/miniGUI/target
  3. $ make
  4. $ make install

  5. 执行install之后,会安装到target目录下的share文件夹
==============修改MiniGUI.cfg

  1. 将MiniGUI.cfg的开头部分改为:
  2. [system]
  3. # GAL engine and default options
  4. gal_engine=fbcon
  5. defaultmode=800x480-16bpp (对应板子分辨率)

  6. # IAL engine
  7. ial_engine=console
  8. mdev=/dev/input/mice
  9. mtype=IMPS2

  10. [fbcon]
  11. defaultmode=800x480-16bpp
修改res资源放置的路径,在配置文件中的[cursorinfo]->cursorpath以及[resinfo]->respath
否则运行sample程序时会出错。

  1. 修改路径:
  2. 103 [cursorinfo]
  3. 104 # Edit following line to specify cursor files path
  4. 105 cursorpath=/usr/local/share/minigui/res/cursor/


  5. 131 [resinfo]
  6. 132 respath=/usr/local/share/minigui/res/

比如,运行helloworld时显示:
  1. get_image_type: unknown type png.
  2. get_image_type: unknown type png.
  3. get_image_type: unknown type png.
  4. get_image_type: unknown type png.
  5. get_image_type: unknown type png.
  6. KERNEL>InitGUI: Count not init mouse cursor!
  7. KERNEL>InitGUI: Init failure, please check your MiniGUI configuration or resource.

小体会:
1.有些库用configure进行配置时,可以不用额外添加库文件的路径(类似CFLAGS=-L/<lib path>/或者 -I /<include path>/)
原因可能是configure的时候,自己会查找prefix参数下的include文件夹,跟lib文件夹
但是这里面也有个例外,就是在编译mg-samples部分,需要添加CFLAGS="-I/home/decuhi/miniGUI/target/include"才行,否则提示某个文件找不到
2.依赖库的编译顺序

 
转自:http://blog.chinaunix.net/uid-22731254-id-3429772.html
原创粉丝点击