MiniGUI安装经验

作者:李文锋

日期:2006-01-04

参考:<<我的minigui安装经验>>,作者不明

1.       安装qvfb:

X windows下,用QtframeBuffer比较容易

首先在http://www.minigui.com/download/c3rdparty.shtml下载qvfb-1.0.tar.gz,然后

 

tar -zxvf qvfb-1.0.tar.gz

cd qvfb-1.0

./configure

make

make install

 

2.       安装minigui资源文件

http://www.minigui.com/download/cindex.shtml下载minigui-res-str-1.6.tar.gz,然后

 

tar -zxvf minigui-res-str-1.6.tar.gz

cd minigui-res-str-1.6

make install

 

3.       安装lib文件

http://www.minigui.com/download/cindex.shtml下载libminigui-str-1.6.2.tar.gz,然后

 

tar -zxvf libminigui-str-1.6.2.tar.gz

cd libminigui-str-1.6.2

./autogen.sh

./configure --disable-lite

make

make install

 

vi /etc/ld.so.conf 在最后添加一行 /usr/local/lib 然后:wq保存推出

vi /usr/local/etc/Minigui.cfg 把输入fbcon,输出console都改为qvfb 然后保存退出,然后运行

 

ldconfig

 

4.       编译实例文件

http://www.minigui.com/download/cindex.shtml下载mg-samples-str-1.6.2.tar.gz,然后

 

tar -zxvf mg-samples-str-1.6.2.tar.gz

cd mg-samples-str-1.6.2

./configure --disable-lite

make

 

补充一句,如果helloworld.c编译不过,去掉#include <mywindow.h>试一试

5.       运行qvfb

重新开一个终端terminal,输入

 

qvfb &

 

然后再qvfb的左上角选择configure,设置为640X480 --16bpp,然后确定后不要退出

进入编译好的mg-samples-str-1.6.2目录,随便运行编译好的程序应该没有问题。

6.       建立交叉编译环境

我用的是S3C2410armv4l-unknown-linux-gcc,默认安装目录为/opt/host/armv4l/bin

在你的bashrc中添加环境变量即可

 

vi /etc/bashrc

 

最后一行加入:

export PATH=$PATH:/opt/host/armv4l/bin  保存退出后执行

 

source /etc/bashrc

 

7.       交叉编译你的minigui-lib

我用的是1.3.3版本

 

tar –zxvf minigui-libminigui-1.3.3.tar.gz

cd libminigui -1.3.3

make menuconfig

 

注意去掉jpg,png support,不要incoreres,不要lite模式,交叉编译选择armv4l-unknown-linux-gcc,路径选择/opt/host/armv4l,并把make menuconfig执行后libminigui -1.3.3文件夹下的所有Makefile文件里的arm-unknown替换成armv4l-unknown,然后

 

make

make install

 

这时minigui被安装到/opt/host/armv4l

8.       交叉编译你的mde(可省略该步骤)

 

tar –zxvf mde-1.3.0.tar.gz

cd mde-1.3.0

export TARGET=armv4l-unknown-linux

export PREFIX=/opt/host/armv4l

export CC=armv4l-unknown-linux-gcc

export LDFLAGS=-L/$PREFIX/lib

export CPPFLAGS=-I/$PREFIX/include

./configure --target=$TARGET --host=$TARGET --prefix=$PREFIX -exec-prefix=$PREFIX --enable-static

make

 

补充一句,如果helloworld.c编译不过,去掉#include <mywindow.h>试一试

此时应经生成可执行文件。

9.       编写Hello程序

建立一个test.c文件,输入以下内容:

#include <stdio.h>

#include <minigui/common.h>

#include <minigui/minigui.h>

#include <minigui/gdi.h>

#include <minigui/window.h>

#ifndef _LITE_VERSION

#include <minigui/dti.c>

#endif

 

static int TestWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)

{

    HDC hdc;

 

    switch (message) {

        case MSG_PAINT:

            hdc = BeginPaint (hWnd);

            TextOut(hdc,100,100,"hello/n!");

            EndPaint(hWnd,hdc);

            return 0;

        case MSG_CLOSE:

            DestroyMainWindow (hWnd);

            PostQuitMessage (hWnd);

            return 0;

    }

 

    return DefaultMainWinProc(hWnd, message, wParam, lParam);

}

 

void InitCreateInfo(MAINWINCREATE * pCreateInfo)

{

    pCreateInfo->dwStyle = WS_CAPTION|WS_VISIBLE;

    pCreateInfo->dwExStyle = 0;

    pCreateInfo->spCaption = "Hello world!";

    pCreateInfo->hMenu = 0;

    pCreateInfo->hCursor = GetSystemCursor(0);

    pCreateInfo->hIcon = 0;

    pCreateInfo->MainWindowProc = TestWinProc;

    pCreateInfo->lx = 0;

    pCreateInfo->ty = 0;

    pCreateInfo->rx = 240;

    pCreateInfo->by = 320;

    pCreateInfo->iBkColor = PIXEL_lightwhite;

    pCreateInfo->dwAddData = 0;

    pCreateInfo->hHosting = HWND_DESKTOP;

}

 

int MiniGUIMain (int argc, const char* argv[])

{

    MSG Msg;

    HWND hMainWnd;

    MAINWINCREATE CreateInfo;

 

#ifdef _LITE_VERSION

    SetDesktopRect(0, 0, 240, 320);

#endif

 

    InitCreateInfo(&CreateInfo);

   

    hMainWnd = CreateMainWindow (&CreateInfo);

    printf ("The main window created./n");

   

    if (hMainWnd == HWND_INVALID)

        return -1;

 

    ShowWindow(hMainWnd, SW_SHOWNORMAL);

    printf ("The main window showed./n");

 

    while (GetMessage(&Msg, hMainWnd)) {

        TranslateMessage(&Msg);

        DispatchMessage(&Msg);

    }

 

    MainWindowThreadCleanup (hMainWnd);

 

    return 0;

}

然后建立一个Makefile文件,输入以下内容:

CC = /opt/host/armv4l/bin/armv4l-unknown-linux-gcc

LD = /opt/host/armv4l/bin/armv4l-unknown-linux-ld

EXEC = test

OBJS = test.o

 

CFLAGS +=

LDFLAGS += -I/opt/host/armv4l/include -lminigui -lpthread

 

all: $(EXEC)

 

$(EXEC): $(OBJS)

$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS $(LDLIBS_$@))

 

clean:

-rm -f $(EXEC) *.elf *.gdb *.o

接着再运行make,就可生成可执行文件test

10.   配置嵌入式Linux上的MiniGUI运行环境

A.      加载MiniGUI

PC机上/opt/host/armv4l/lib下的MiniGUI库复制到PCNFS共享目录上

cp /opt/host/armv4l/lib/libminigui* /mnt/res

cp /opt/host/armv4l/lib/libmgext* /mnt/res

cp /opt/host/armv4l/lib/libvcongui* /mnt/res

然后再把该共享目录的文件复制到目标机Linux(嵌入式Linux)系统的/lib目录下

cp * /lib/

B.       安装MiniGUI资源

tar –zxvf minigui-res-1.3.3.tar.gz

然后将这些资源文件安装到目标板的/usr/local/lib/minigui/res目录下

C.       配置MiniGUI.cfg

MiniGUI.cfg放到嵌入式Linux/etc目录下

11.   运行嵌入式Linux程序。

把编译好的test程序放到目标机上,执行

./test&

如果出现错误,可能是图形引擎或鼠标设备和鼠标类型设置有误,需要设置MiniGUI.cfg

我的板子上的MiniGUI.cfg是这样设置的:

mdev=/dev/input/mouse0

mtype=IMPS2

 

[fbcon]

defaultmode=240x320-16pp

 

[qvfb]

defaultmode=240x320-16pp

desplay=0

注意鼠标要设置正确,否则会出错或黑屏,如不需要鼠标,可设置mtype=none

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值