编译工具:arm-none-linux-gnueabi-gcc
相关文件库:从官网处下载()
├── 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
- $ ./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
-
- $ make
- $ make install
- $ ./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
-
- $ make
- $ make install
- $ ./configure --shared --prefix=/home/decuhi/miniGUI/target
-
- 修改Makefile,将编译相关的设置改成交叉工具链
-
- $ make
- $ make install
- $ cp scripts/makefile.linux Makefile
- 修改
- 21 # Utilities:
- 22 AR_RC=ar rc
- 23 CC=cc
- 24 MKDIR_P=mkdir -p
- 25 LN_SF=ln -sf
- 26 RANLIB=ranlib
- 为
- 21 # Utilities:
- 22 AR_RC=arm-none-linux-gnueabi-ar rc
- 23 CC=arm-none-linux-gnueabi-gcc
- 24 MKDIR_P=mkdir -p
- 25 LN_SF=ln -sf
- 26 RANLIB=arm-none-linux-gnueabi-ranlib
-
- 修改
- 32 prefix=/usr/local
- 为
- 32 prefix=/home/decuhi/miniGUI/target/
- 修改zlib库路径
- # Where the zlib library and include files are located.
- #ZLIBLIB=/usr/local/lib
- #ZLIBINC=/usr/local/include
- ZLIBLIB=$(prefix)/lib
- ZLIBINC=$(prefix)/include
-
- $ make
- $ make install
============LIBMINIGUI
- $ ./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
-
- 出现
- Going to generate license pictures ...
- ./configure: line 15530: ./runme.sh: No such file or directory
- 无视之
-
- $ vim src/newgal/pcxvfb/Makefile
-
- 修改194行,将/usr/include去掉:
- INCLUDES = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include \
- -I$(abs_top_srcdir)/src/newgal/ -I/usr/include/
- 否则编译pcxvfb.c将出错
-
- $ make
- $ make install
- $ ./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
-
- $ make
-
- 出错:
- configure: WARNING: using cross tools not prefixed with host triplet
- checking pkg-config is at least version 0.9.0... yes
- checking for MINIGUI... configure: error: Package requirements (minigui >= 3.0.10) were not met:
-
- No package 'minigui' found
-
- Consider adjusting the PKG_CONFIG_PATH environment variable if you
- installed software in a non-standard prefix.
-
- Alternatively, you may set the environment variables MINIGUI_CFLAGS
- and MINIGUI_LIBS to avoid the need to call pkg-config.
- See the pkg-config man page for more details.
-
- 解决办法:
- export PKG_CONFIG_PATH=/home/decuhi/miniGUI/target/lib/pkgconfig/
-
- 继续make
-
- $ make install
==============MG-SAMPLES
- $ ./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"
- $ make
- $ cd src/ # 生成的可执行程序放在此目录,需手动复制
- 这些资源与平台无关,大致是一些图片
- $ ./configure --prefix=/home/decuhi/miniGUI/target
- $ make
- $ make install
-
-
执行install之后,会安装到target目录下的share文件夹
- 将MiniGUI.cfg的开头部分改为:
- [system]
- # GAL engine and default options
- gal_engine=fbcon
-
defaultmode=800x480-16bpp (对应板子分辨率)
-
- # IAL engine
- ial_engine=console
- mdev=/dev/input/mice
- mtype=IMPS2
-
- [fbcon]
- defaultmode=800x480-16bpp
否则运行sample程序时会出错。
-
修改路径:
- 103 [cursorinfo]
- 104 # Edit following line to specify cursor files path
- 105 cursorpath=/usr/local/share/minigui/res/cursor/
-
- 和
-
- 131 [resinfo]
- 132 respath=/usr/local/share/minigui/res/
比如,运行helloworld时显示:
- get_image_type: unknown type png.
- get_image_type: unknown type png.
- get_image_type: unknown type png.
- get_image_type: unknown type png.
- get_image_type: unknown type png.
- KERNEL>InitGUI: Count not init mouse cursor!
- KERNEL>InitGUI: Init failure, please check your MiniGUI configuration or resource.
小体会:
1.有些库用configure进行配置时,可以不用额外添加库文件的路径(类似CFLAGS=-L/
原因可能是configure的时候,自己会查找prefix参数下的include文件夹,跟lib文件夹
但是这里面也有个例外,就是在编译mg-samples部分,需要添加CFLAGS="-I/home/decuhi/miniGUI/target/include"才行,否则提示某个文件找不到
2.依赖库的编译顺序