TQ2440移植miniGUI

1、编译freetype库

编译配置脚本:

    [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."

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值