编译安装minigui:共有libminigui-2.0.4-linux,minigui-res-2.0.4,mde-2.0.4三个包,

libminigui-2.0.4-<os>.tar.gz: 针对  <os>  (如 linux) 操作系统的 MiniGUI
V2.0.4 函数库源代码。 MiniGUI 由三个函数库组成; 它们分别是 libminigui、 libmgext
以及 libvcongui。libminigui 是提供窗口管理和图形接口的核心函数库,也提供了大
量的标准控件;libmgext  是 libminigui  的一个扩展库,提供了一些高级控件以及
“文件打开” 、 “颜色选择”对话框等;libvcongui 则为 Linux 操作系统提供了一个
应用程序可用的虚拟控制台窗口, 从而可以方便地在 MiniGUI 环境中运行字符界面
的应用程序,libmgext 和 libvcongui 库已经包含在这个源代码包中。

minigui-res-2.0.4.tar.gz:MiniGUI 所使用的资源,  包括基本字体、图标、
位图和鼠标光标。

mg-samples-2.0.4.tar.gz: 《MiniGUI  编程指南》的配套示例程序。
mde-2.0.4.tar.gz:MiniGUI 的综合演示程序包,其中包含有一些较为复杂的示
例程序。

我们可以将 MiniGUI 配置成三种运行模式
之一:多进程的 MiniGUI-Processes运行模式,多线
程模式的 MiniGUI-Threads 运行模式,以及非多进程也非多线程的 MiniGUI-Standalone 运行模式。
MiniGUI的默认配置选项是 MiniGUI-Threads运行模式。表 2.3 给出了运行模式相关的配置选项和宏。

MiniGUI-Processes 运行模式, 仅用于 Linux/uClinux 操作系统 默认配置选项为关闭
MiniGUI-Standalone 运行模式,仅用于 Linux/uClinux 操作系统 默认配置选项为关闭

MiniGUI-Threads运行模式需要使用Qvfb 图形引擎,然后直接运行用户程序。不要用运行mginit服务器。

MiniGUI-Processes 运行模式在运行完qvfb后,需要运行mginit程序。如果您的 MiniGUI 被配置为 MiniGUI-Lite 或者 MiniGUI-Processes,则应该首先运行 mginit 程序。MiniGUI-Lite或者 MiniGUI-Processes 运行模式基于客户/服务器体系运行,在运行客户程序之前,必须启动一个名称为 mginit 的服务器程序。在 MDE 包中,首先运行 mginit/ 目录下的 mginit 服务器程序,然后就可以运行其它目录下的演示程序了。 (MiniGUI-Lite 是 MiniGUI-Processes的前身)

UI美化增强是 MiniGUI-VAR 新版本的重要特性之一。在以前的发布版本中,MiniGUI 提供了三种用户外观风格:PC3D, FLAT 和 PHONE。在当前版本中新的三种用户外观风格分别为: CLASSIC, FLAT 和 FASHION。这几种风格可以被用在不同的显示设备和应用领域。用户可根据自己的需要在配置 MiniGUI 时指定所需的外观风格:

* CLASSIC 外观风格类似于 Windows 经典风格, MiniGUI 默认配置时采用此种外观风格,相应的配置选项为--with-style=classic;
* FLAT 外观风格常被用于工业控制和灰度级显示屏上,相应的配置选项为--with-style=flat;
* FASHION 外观风格适用于手持设备,相应的配置选项为--with-style=fashion。

查看安装的风格方法:在源文件目录下的libminigui-2.0.4-linux/etc下,有配置这三种风格的配置文件,然后根据安装后在usr/local/etc下的minigui.cfg文件比较,由于系统颜色上有些区别,所以可以通过[windowelementcolors]项来查看与上面三个风格哪个相同。(同理,我们也可以直接修改这个安装后的配置文件,修改一些颜色搭配等等,以达到我们所期望的效果)

编译风格以及模式:例如,运行: 
 user$ ./configure --with-style=fashion --enable-procs --enable-standalone  
 就可以将 MiniGUI 配置成具有 Fashion 风格的外观,且具有 MiniGUI-Standalone运行模式。如果运
行: 
 user$ ./configure --with-style=flat  --enable-procs 
 则会将 MiniGUI 配置成 MiniGUI-Processes 模式,使用 Flat 风格。不带任何参数执行 ./configure
命令将按照默认编译配置选项生成 Makefile。注意在每个编译配置选项的说明中都给出了默认设置:
<default=yes>(表示该编译配置选项默认为开启状态)或者 <default=no>(表示该编译配置选
项默认为关闭状态) 。

依次编译这三个包,分别解压,./configure,make,makeinstall(后面一个不用makeinstall,第二个直接makeinstall),然后修改/etc/ld.so.conf  在该文件中加入minigui库文件的路径,即添加下面的文字:
  /usr/local/lib     然后执行ldconfig命令。 然后安装qvfb,安装文件存放在/miniGUI/deplibs包里,然后会在user/local/bin下生成可执行文件,然后直接运行 qvfb & (加上&符号使qvfb进程开启后shell立即返回,否则会阻塞shell进程,需要再开一个shell才可以运行minigui程序。。),然后调节qvfb里面的配置,选择640×480 VGA,然后直接运行mg-samples-2.0.4或者mde-2.0.4里面的可执行文件,便可观看结果。下面是网络上一些编译方法。

在本人安装minigui的过程中得到了各位网友的友情支持,在此谨致谢意!
本人有minigui1.3.0的安装文件,如有需要可联系我
另外谁有minigui编程指南方面的电子文档,请共享一下,谢谢!
email:xiaodylove2003@163.com

下面是我安装minigui1.3.0的一点经验,希望对你有用:

操作系统:redhat linux9.0
显卡:Geforce4 440 MX  AGP8X
Minigui 版本:1.3.0
1、下载minigui的资源文件以及库文件和示例(minigui-res-1.3.0.tar.gz   libminigui-1.3.0.tar.gz  mde-1.3.0.tar.gz)
2、 解压缩上面三个压缩包(解压相信大家都会)
3、 解压缩后进入minigui-res-1.3.0目录,执行命令make install(将资源文件安装于/usr/local/lib/minigui/res目录)
4、 进入libminigui-1.3.0目录,执行./configure
  再执行make
  再执行make install
5、 进入mde-1.3.0目录
   执行./autogen.sh
   再执行./configure
   再执行make
6、修改/etc/ld.so.conf  在该文件中加入minigui库文件的路径,即添加下面的文字:
  /usr/local/lib
7、执行ldconfig
8、修改/boot/grub/grub.conf文件,在该文件中kernel /vmlinuz-2.4.20-8 ro   root=LABEL=/后面添加vga=0x0317(1024*768) fb:on
   或vga=0x0314(800*600) fb:on
 (本人的是使用0x0314,系统不支持0x0317,还没查到原因)
9、修改/usr/local/etc/MiniGUI.cfg文件里的显示模式与上面选择的显示模式一致,下面红色字体部分,系统默认是1024*768
[fbcon]
defaultmode=800x600-16bpp
10、重新起动电脑,登录后在终端执行命令init 3,然后重新登录,再进入mde-1.3.0目录下的*demo(例如:ctrldemo)目录,执行里面的*demo(例如:./ctrldemo)程序

miniGUI安装笔记

前几天把miniGUI给安装到fedora上了,现在把详细步骤记下来,方便自己和他人以后查阅。打算把编译安装和RPM安装都记录下来的,今天先写编译安装。
1.6.2是目前飞漫公司在GPL许可下发行的miniGUI最新版本,2.0.3 和1.6.9是商业增值版,分别适用于有MMU和没有MMU的处理器,用这两个个是要花¥的。
一.编译安装miniGUI 1.6.2
首先要做好准备工作,去http://www.minigui.org/res.shtml下载一下压缩包:
开发库:libminigui-str-1.6.2.tar.gz
资源文件:minigui-res-str-1.6.tar.gz
示例程序:mg-samples-str-1.6.2.tar.gz
建议在qvfb中运行miniGUI程序,这样比较方便,qvfb下载地址:
http://www.minigui.com/downloads/dep-libs/qvfb-1.0.tar.gz
我使用的是fedora 7,所以在其他系统中和这里可能有差异,比如编译出错等问题,这个和gcc,libc的版本有关系。遇到问题解决问题,我也是经过种种困难才编译成功的,多搜索多思考。
(1)安装minigui-res-1.6.tar.gz:MiniGUI 所使用的资源, 包括基本字体、图标、位图和鼠标光标。
安装命令:
[root@fedora7]#tar -zxf minigui-res-1.6.tar.gz
[root@fedora7]#cd minigui-res-1.6
[root@fedora7]#make install
(2)安装libminigui-1.6.2.tar.gz:MiniGUI 函数库源代码。
解压命令:
[root@fedora7]#tar -zxf libminigui-1.6.2.tar.gz
这里有一个bug,解压缩后进入libminigui-str-1.6.2/src/kernel打开init.c文件,
删除或注释掉下面这几行
#ifdef __LINUX__
else {
pthread_kill_other_threads_np ();
}
#endif
保存退出,然后回到/libminigui-str-1.6.2目录接着安装:
[root@fedora7]#cd libminigui-1.6.2
[root@fedora7]#./configure
[root@fedora7]#make
[root@fedora7]#make install
(3)把libminigui加入库搜索路径:
进入/etc/ld.so.conf.d建一个vminigui.conf,写上/usr/local/lib
可以使用命令完成:
[root@fedora7]#echo /usr/local/lib > /etc/ld.so.conf.d/minigui.conf
(如果你使用的不是fedora7可能没有/etc/ld.so.conf.d这个目录,只有一个/etc/ld.so.conf,不过作用是一样的,在这个文件末尾加上/usr/local/lib)
(4)最后要把系统共享库缓存刷新,将libminigui加载上,可以使用命令
[root@fedora7]#ldconfig
这个命令执行时要花十多秒,耐心等待。当然不使用刷新命令重启系统也可以。
(5)编译示例程序
解压并编译mg-smaples-1.6.2.tar.gz:
----------------------------------------------------
[root@fedora7]#tar –zxf mg-smaples-1.6.2.tar.gz
[root@fedora7]#./configure
[root@fedora7]#make
----------------------------------------------------
二.配置minigui
minigui在linux中有两种运行模式:fbcon和qvfb
fbcon:Frame Buffer Console
qvfb: Qt Virtual Frame Buffer
看名字就知道fbcon在控制台下运行,这种模式下你不能开linux的X图形界面,使用不方便。fbcon则是带帧缓冲的虚拟控制台,minigui程序在qvfb中运行就像我们在图形界面下的Terminal中运行命令一样。两种模式我都试过了,详细配置如下:
(1)fbcon模式
打开MiniGUI.cfg
[root@fedora7]# gedit /usr/local/etc/MiniGUI.cfg
注意这一段:
-------------------------------------------------
[system]
# GAL engine
gal_engine=fbcon
# IAL engine
ial_engine=fbcon
mdev=/dev/mouse
mtype=IMPS2
-------------------------------------------------
gal_engine和ial_engine的值应该设置为fbcon,minigui安装后默认设置就是这样,所以你不用改。要注意的就是鼠标的设置,
我的fedora7中鼠标设备文件不是这里的/dev/mouse,而是/dev/input/mice,所以我建了一个符号链接到/dev/mouse
配置文件MiniGUI.cfg搞定后需要开启linux内核的帧缓冲支持,这个是在引导器中修改,我使用的是现在最流行的grub,修改方法:
[root@fedora7]# vim /boot/grub/menu.lst
在menu.lst中加入一个段落:
----------------------------------------------------------
title MiniGUI 1.6.2
root(hd0,0)
kernel /vmlinuz-2.6.21-1.3194.fc7 ro root=/dev/VolGroup00/LogVol00 vga=0x0317 fb:on
initrd /initrd-2.6.21-1.3194.fc7.img
----------------------------------------------------------
这里的root(hd0,0)以及kernel,initrd段需要结合你自己的系统和分区情况填写,最简单的办法是把你以前的一个linux启动项找过来对照着改,kernel项后面的vga=0x0317 fb:on是设置显示器分辨率,打开帧缓冲。
显示模式对照表:
-------------------------------------------------------
   640x480 800x600 1024x768 1280x1024
8位色 0x301    0x303    0x305    0x307
15位色 0x310    0x313    0x316    0x319
16位色 0x311    0x314    0x317    0x31A
24位色 0x312    0x315    0x318    0x31B
-------------------------------------------------------
重启系统在grub中选择title MiniGUI 1.6.2
登录后就可以运行mg-smaples-1.6.2/src中的例子了,运行一个helloworld试试效果,如果没有问题正常显示了窗口就说明一切OK了。
(2)qvfb模式
把下载回来的qvfb-1.0.tar.gz解压安装:
[root@fedora7]# tar zxf qvfb-1.0.tar.gz
[root@fedora7]# cd qvfb-1.0
[root@fedora7]# ./configure
[root@fedora7]# make
[root@fedora7]# make install
打开MiniGUI.cfg
[root@fedora7]# gedit /usr/local/etc/MiniGUI.cfg
注意一下段落:
---------------------------------------------------
[system]
# GAL engine
gal_engine=qvfb  
# IAL engine
ial_engine=qvfb  
mdev=/dev/mouse
mtype=IMPS2
[fbcon]
defaultmode=1024x768-16bpp
[qvfb]
defaultmode=640x480-16bpp
display=0
---------------------------------------------------
gal_engine和ial_engine的值应该设置为qvfb,minigui安装后默认设置就是fbcon,所以你要改过来。另外要注意
[qvfb]段中的defaultmode,这个是你需要使用的显示器分辨率和色深,后面设置qvfb要和这里一致,否则minigui运行时或报初始化
失败的错误。
然后就可以使用qvfb体验miniGUI了:
[root@fedora7]# qvfb &
加上&符号使qvfb进程开启后shell立即返回,否则会阻塞shell进程,需要再开一个shell才可以运行minigui程序。qvfb
运行起来后在qvfb中设置虚拟显示器分辨率:File-->Configure,注意Size和Depth要设置的同MiniGUI.cfg中的
分辨率和色深一致。
qvfb设置搞定后就可以运行mg-smaples-1.6.2/src中的例子了,运行一个helloworld试试效果,Good luck!
====================================================================================

原文地址: http://linux.chinaunix.net/bbs/archiver/?tid-1012766.html

三.安装中文字体
可能是涉及版权问题新的开源版Minigui1.6.2中没有提供种中文字体库,可以从minigui-res-1.3.3.tar.gz中借用过来。
解压minigui-res-1.3.3.tar.gz复制font文件夹到/usr/local/lib/minigui/res/覆盖原来的font文件(最好还是把之前的备份,改名为font-bak以便以后恢复)
修改MiniGUI.cfg中部分段落如下:
[systemfont]
font_number=6
font0=rbf-fixed-rrncnn-8-16-ISO8859-1
font1=*-fixed-rrncnn-*-16-GB2312
font2=*-Courier-rrncnn-*-16-GB2312
font3=*-SansSerif-rrncnn-*-16-GB2312
font4=*-Times-rrncnn-*-16-GB2312
font5=*-Helvetica-rrncnn-*-16-GB2312

default=0
wchar_def=1
fixed=1
caption=2
menu=3
control=3

[rawbitmapfonts]
font_number=4
name0=rbf-fixed-rrncnn-8-16-ISO8859-1
fontfile0=/usr/local/lib/minigui/res/font/8x16-iso8859-1.bin
name1=rbf-fixed-rrncnn-16-16-GB2312-0
fontfile1=/usr/local/lib/minigui/res/font/song-16-gb2312.bin
name2=rbf-fixed-rrncnn-6-12-ISO8859-1
fontfile2=/usr/local/lib/minigui/res/font/6x12-iso8859-1.bin
name3=rbf-fixed-rrncnn-12-12-GB2312-0
fontfile3=/usr/local/lib/minigui/res/font/song-12-gb2312.bin

[varbitmapfonts]
font_number=3
name0=vbf-Courier-rrncnn-10-15-ISO8859-1
fontfile0=/usr/local/lib/minigui/res/font/Courier-rr-10-15.vbf
name1=vbf-Helvetica-rrncnn-15-16-ISO8859-1
fontfile1=/usr/local/lib/minigui/res/font/Helvetica-rr-15-16.vbf
name2=vbf-Times-rrncnn-13-15-ISO8859-1
fontfile2=/usr/local/lib/minigui/res/font/Times-rr-13-15.vbf

配置文件的解释:
fontNO=<type>-<facename>-<style>-<width>-<height>-<charset>
type       字体类型,*表示缺省
facename   字体样式
style      字体风格
width      字体宽度
height     字体高度
charset    字符集

然后就可以在程序中使用中文字体了.
如果中文显示乱码,检查源程序文件的编码,必须以GB2312编码保存。
建议将系统环境变量设置为中文:export LANG = zh_CN.UTF-8
使用vim编辑源程序,注意Vim中以下三个环境变量:
fileencodings
fileencoding
encoding
查看fileencoding是否为euc-cn,如果不是编译后肯定会是乱码,因为中文字体文件使用GB2312编码。
我的设置Vim设置:
fileencodings = utf-8,chinese,latin1
fileencoding = euc-cn
encoding = utf-8
通过se和set命令查看和设置这些变量。

MINIGUI编译方法【原创】相关推荐

  1. 【java】RMI教程:入门与编译方法 远程

    1.概述 转载:RMI教程:入门与编译方法 2.分布式对象和RMI 分布式对象技术主要是在分布式异构环境下简历应用系统框架和对象构件.在应用系统框架的支撑下,开发者可以将软件功能封装为更易于管理和使用 ...

  2. uboot中添加新型号步骤以及编译方法

    一.添加新型号的支持: 1.在board.cfg 添加需要支持的型号: 2.在include/configs下添加支持新型号的.h文件: 二.uboot编译方法: 1.配置编译的环境变量: expor ...

  3. android+包+反编译,简单的Android之apk包反编译方法

    网上相关的文章一大堆了,我只是总结下自己的反编译方法和工具 工具下载地址: 下载上面的三个工具的压缩包 Apktool_v1.5.1_CHS_By_b-sf.rar dex2jar.zip jd-gu ...

  4. ATF(TF-A)的编译方法

    官网给出的编译方法: make PLAT=fvp BL33=/bl33.bin fip 针对qemu_v8平台的编译,真实情况是这样的: CROSS_COMPILE="/usr/bin/cc ...

  5. 2019编译ffepeg vs_2020/5-Win10下ffmpeg最简编译方法

    前期准备:Windows10+WSL,WSL我在Windows商店下载的Ubuntu18 VisualStudio2019,其他版本应该也可以试试 ffmpeg新版源码,我的是4.0 对,就这么少.很 ...

  6. osg第三方插件的编译方法(以jpeg插件来讲解)

    osg以插件方式来扩展.加载第三方库,如果这些库在程序运行时找不到,就会报类似如下的错误:(这里以jpeg为例): 下面以jpeg为例,讲解jpeg插件的编译方法,其它库和这步骤类似. 先从库的官网下 ...

  7. php的strpos不支持数字,php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创...

    php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创 这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来! PHP 开源脚本语言 PHP(外文名: Hypertext Prep ...

  8. Linux编译soci库,Soci库linux下的编译方法

    Soci库的linux编译方法 1.下载soci库源码 2.在目标机器上配置数据库环境 以oracle为例:(其他数据库只需要简单安装客户端即可) A)下载oracle客户端安装包 oracle-in ...

  9. Linux内核的编译方法及如何往内核中增加程序

    2019独角兽企业重金招聘Python工程师标准>>> ARM Linux的系统调用实现原理是采用swi软中断从用户(usr)模式陷入管理模式(svc). 内核空间和用户空间这两个名 ...

最新文章

  1. POJ2513Colored Sticks(欧拉路加字典树)
  2. linux文件中链接文件系统,一种基于Linux文件系统文件链接的缓存LRU方法
  3. pyqt5 tableview 设置行颜色_Tools Ⅰ:如何用 PyQt5 和 Qt Designer 在 Pycharm 中愉快地开发软件...
  4. Linux 0.00 代码解析(一)
  5. 关于Activity的getReferrer():如何在Activity中获取调用者?
  6. php 异步进度条,PHP学习:PHP+Ajax异步带进度条上传文件实例
  7. 十.jmeter性能测试基础实践(2)
  8. Java怎么给窗口设置背景
  9. mysql sniffer 官网下载_MySQL抓包工具:MySQL Sniffer 和性能优化
  10. java写的小米商城_开发”小米商城官网首页”(静态页面)
  11. xv6 risc-v file system logging layer
  12. HTML网页拓展名有哪些,网页文件的扩展名有哪些
  13. 服务器误删除虚拟机数据恢复成功
  14. Songtaste,酷到不行的音乐网站
  15. 10+ 张图来探究 Linux 内核,以及如何高效学习
  16. win11使用移动硬盘(固态非固态)卡顿问题解决
  17. 学计算机编程难吗,计算机编程入门 计算机编程难学吗
  18. sprintf 函数的详解
  19. MySQL中IN对NULL的处理
  20. SAP BP最佳业务实践

热门文章

  1. 一个人不孤单,想一个人才孤单
  2. 使用百度API实现语音识别——in python
  3. python做的数据图表怎么在flask中显示_Python:如何在Flask应用程序的表中显示MySQL查询的数据...
  4. python count函数用法 comm_Python学习第六天课后练习案例 (主要针对的内容是python函数的定义和使用)...
  5. 元气森林高管柳甄离职 回应:因个人原因选择离职 表示理解和尊重
  6. 中兴手机官宣吴京代言 以科技为勇敢者助力
  7. 上市之前再被爆出安全问题 卫龙辣条被爆吃出“锁精环”
  8. 抖音上线独立电商APP“抖音盒子”
  9. 网易云音乐上市首日收跌2.49% 盈利困境仍待解
  10. 华为P50外观定了:居中挖孔