编译配置脚本:
[root@localhost]./configure --host=arm-linux --prefix=安装目录前缀 --enable-static
运行配置脚本后,修改:
[root@localhost] vim config.cache
# 修改如下行
ac_cv_path_LD=${ac_cv_path_LD='arm-linux-gnu-ld'}
ac_cv_prog_CC=${ac_cv_prog_CC='arm-linux-gnu-gcc'}
ac_cv_prog_CPP=${ac_cv_prog_CPP='arm-linux-gnu-gcc -E'}
#重新配置,再运行一次配置脚本
#修改Makefile文件,以跳过编译test目录。
# 去掉“all:”后的变量“tttest”
# 注释掉“install:”下的第二行:“cd $(FTTESTDIR); $(MAKE) –f$(MAKEFILE) install”
之后编译:make;make install;
2、移植编译jpeg库
export CC=arm-linux-gcc
export CXX=arm-linux-g++
export LD=arm-linux-ld
export AS=arm-linux-as
export AR=arm-linux-ar
配置:
./configure --host=arm-linux --target=arm-linux --prefix=/home/cj/miniGUI/jpeg-8c/temp --enable-shared
3、编译zlib库
./configure --prefix= --shared
make;make install
4、编译png库
cp scripts/makefile.linux Makefile
修改Makefile
删除CC或者CC=arm-linux-gcc
修改ranlib为arm-linux-ranlib
修改zlib库搜索路径和zlib头文件搜索路径(路径是编译zlib库指定的prefix)
修改png的安装的prefix
make;make install
5、编译miniGUI资源
./configure --prefix=
make; make install
6、编译miniGUI核心
./configure --prefix=/home/cj/miniGUI/libminigui-gpl-3.0.12/temp --host=arm-linux --target=arm-linux --build=i386-linux --with-osname=linux --with-style=classic --with-targetname=fbcon --enable-autoial --enable-rbf16 --disable-vbfsupport --enable-tslibial
出现
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
7、编译mg-samples
./configure --prefix=/home/cj/miniGUI/mg-samples-3.0.12/temp --host=arm-linux --target=arm-linux CC='arm-linux-gcc -D_XOPEN_SOURCE' LDFLAGS='-L/home/cj/miniGUI/libminigui-gpl-3.0.12/temp/lib -L/home/cj/tslib/temp/lib' CPPFLAGS='-I/home/cj/miniGUI/libminigui-gpl-3.0.12/temp/include -I/home/cj/tslib/temp/include' MINIGUI_CFLAGS='-L/home/cj/miniGUI/libminigui-gpl-3.0.12/temp/lib' MINIGUI_LIBS='-ldl -lminigui_ths' LIBS='-ljpeg -lpng -lpthread -lm -lts'
#make
8、修改MiniGUI.cfg
将MiniGUI.cfg的开头部分改为:
[system]
# GAL engine and default options
gal_engine=fbcon
defaultmode=480x272-16bpp (对应板子分辨率)
# IAL engine
ial_engine=tslib
mdev=/dev/event0
mtype=IMPS2
[fbcon]
defaultmode=480x272-16bpp
修改res资源放置的路径,在配置文件中的[cursorinfo]->cursorpath以及[resinfo]->respath
否则运行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.c */
#include <stdio.h>
#include<minigui/common.h>
#include<minigui/minigui.h>
#include<minigui/gdi.h>
#include<minigui/window.h>
#include <minigui/control.h>
static int helloProc(HWND hWnd,int message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
switch (message)
{
case MSG_PAINT:
hdc = BeginPaint(hWnd);
TextOut(hdc,50,50,"Helllo MiniGUi");
EndPaint(hWnd,hdc);
return 0;
case MSG_CLOSE:
DestroyMainWindow(hWnd);
PostQuitMessage(hWnd);
return 0;
}
return DefaultMainWinProc(hWnd,message,wParam,lParam);
}
int MiniGUIMain(int argc,const char* argv[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
#ifdef _LITE_VERSION
SetDesktopRect(0,0,640,480);
#endif
CreateInfo.dwStyle = WS_VISIBLE|WS_BORDER|WS_CAPTION;
CreateInfo.dwExStyle = WS_EX_NONE;
CreateInfo.spCaption = "hello";
CreateInfo.hMenu = 0;
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = helloProc;
CreateInfo.lx = 0;
CreateInfo.ty = 0;
CreateInfo.rx = 200;
CreateInfo.by = 200;
CreateInfo.iBkColor = COLOR_lightwhite;
CreateInfo.dwAddData = 0;
CreateInfo.hHosting = HWND_DESKTOP;
hMainWnd = CreateMainWindow(&CreateInfo);
if(hMainWnd == HWND_INVALID)
return 1;
ShowWindow(hMainWnd,SW_SHOWNORMAL);
while(GetMessage(&Msg,hMainWnd))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup(hMainWnd);
return 0;
}
#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif
Makefile:
DEP = HelloWorld.c
SRC_FILE = HelloWorld.c
LIB_MINIGUI = /home/cj/miniGUI/libminigui-gpl-3.0.12/temp/lib
LIB_JPEG = /home/cj/miniGUI/jpeg-8c/temp/lib/
LIB_PNG = /home/cj/miniGUI/libpng-1.0.10/temp/lib/
LIB_TS = /home/cj/tslib/temp/lib/
LIB_FREETYPE = /home/cj/miniGUI/freetype-1.3.1/temp/lib/
LIB_ZLIB = /home/cj/miniGUI/zlib-1.2.6/temp/lib/
INCLUDE_MINIGUI = /home/cj/miniGUI/libminigui-gpl-3.0.12/temp/include
LIBS = -L$(LIB_JPEG) -L$(LIB_PNG) -L$(LIB_TS) -L$(LIB_MINIGUI) -L$(LIB_FREETYPE) -L$(LIB_ZLIB)
libs = -lts -lz -lpthread -lminigui -lm -lpng -ljpeg -lttf
incs = -I$(INCLUDE_MINIGUI)
HelloWorld:$(DEP)
$(CC) $(LIBS) $(libs) $(incs) -o HelloWorld $(SRC_FILE)
.PHONY: clean
clean:
rm HelloWorld
@echo "it is cleaning."