Linux 宿主机安装 MiniGUI
去MiniGUI官方网站看的时候,很兴奋,安装竟然这么容易。
上帝总是在给你一个苹果之后,赏你一巴掌。我的确是高兴太早了。
首先看一下官网文档的说明步骤:
(截取于官方文档)
Installing resource files of MiniGUI
We must install resource files of MiniGUI first. Please follow the steps below to do it:
1) Use `tar' to extract minigui-res-be-3.0.12.tar.gz. You can use
the following command: $ tar zxf minigui-res-be-3.0.12.tar.gz 2) Change to the new directory and run `configure' and `make install' as a super user:
$ ./configure
$ sudo make install
Configure and compile MiniGUI
MiniGUI uses `automake' and `autoconf', so configuration and compilation of MiniGUI are very easy:
1) Use `tar' to extract `libminigui-gpl-3.0.12.tar.gz' to a new directory: $ tar zxf libminigui-gpl-3.0.12.tar.gz 2) Change to the new directory and run `./configure': $ ./configure 3) Run the following commands to compile and install MiniGUI: $ make; sudo make install; 4) By default, the libraries of MiniGUI will be installed in
`/usr/local/lib'. You should make sure that this directory
is listed in `/etc/ld.so.conf' file. And after having installed
them, you should run the following command to update the cache
of shared library system: $ sudo ldconfig 5) If you want to specify which features MiniGUI provides, you
can run $ ./configure --help to see the complete configuration options listed, then disable or
enable some features by using command line switches. For example,
if you do not want MiniGUI to load JPEG pictures via the function
LoadBitmap, you can use $ ./configure --disable-jpgsupport 6) Note that some features of MiniGUI depend on other libraries.
Please make sure that you have installed them.
Run samples of MiniGUI
Before running the sample programs, you should extract the mg-samples-3.0.12.tar.gz and compile it:
1) Extract the tarball to a new directory by using `tar' command. 2) Run `./configure' and `make' to compile the demos. $ ./configure
$ make 3) Try to run the samples. For example, you can go to
`mg-samples-3.0.12/same/' to run `same': $ cd same
$ ./same
先下载四个文件:minigui-res-be-3.0.12.tar、libminigui-gpl-3.0.12.tar、mg-samples-3.0.12.tar、qvfb2-2.0.tar
这四个是装 MiniGUI 最基本的四个文件。
步骤流程几乎都是以下三步:
1、 ./configure
2、make
3、make install
但如果能像官方文档那样一个错误没有就PASS的话,那一定是中了六合彩了。
下面来记录以下我当时发生的种种错误。
刚开始 ./configure 会出现权限错误,咦,我是root用户,我是上帝,为什么会错?Linux 有个区域是上帝禁区,你就是没权利。
好吧。那怎么办?
bash ./configure 这样就OK了。我不会告诉你why,因为我自己也不知道。
之前有用 ./configure 无法应用,所以直接用 sudo sh configure 这样执行,但是会出现小的BUG,即使不会报错,会影响库的完整性。
最先安装 minigui-res-be-3.0.12.tar 这个是最顺利的。
其次安装 libminigui-gpl-3.0.12.tar
安装后修改 /etc/ld.so.conf 文件,在里面最后新加入一行 /usr/local/lib
然后执行 ldconfig 更新库文件
OK!
现在安装 qvfb2-2.0.tar
./configure
报错:
checking for Qt... configure: error: Qt (>= Qt 3.0.3) (headers and libraries) not found. Please check your
installation!
For more details about this problem, look at the end of config.log.
原因:装它之前 先要安装 Qt
Qt 安装步骤:
如果报错,就检查g++是否存在。
首先,确保 g++ 存在,如若没安装,就 yum install gcc-c++ 安装一下就OK了
其次,安装 yum install qt3-devel ,由于 qvfb2 或者 qvfb1 需要的是qt3,你装qt4、qt2 都会报错。
这就是所谓linuxer 无奈的地方,越自由,越会受到开发者的局限,你要是用人家软件,就要遵从人家的狗P规则。
安装Qt后继续报相同错误。
之后看网上评论:
某网友写:
yum install qt3-devel 可以安装,但是装出来的有qt3的东西 也有qt4的,不能用,仍报上面的错误,所以要删掉qt4
直接用yum安装可以避免该问题: yum install qt-devel-3.3.8-4.fc7.i386.rpm
可惜我没那么大耐心重装,你无法想象重装是多么考验人的耐心。任何事情都有解决的方法。
解决方法:
$bash ./configure --with-qt-dir=/usr/lib/qt-3.3 --with-qt-includes=/usr/lib/qt-3.3/include
这样就可以顺利编译了,只是 configure 要指定QT库函数而已。
qvfb2 已经安装好后,直接在命令行输入 qvfb2 ,会输出一行:oops:client1 : No such file or directory
咦?安装失败?
又继续查资料。。。发现,qvfb版本2 是无法直接在命令行执行的。也就是说安装成功了。我撤,那怎么测试?
安装好最后一个库就可以测试了!
库mg-samples-3.0.12.tar 骨灰级,耗费了我2个小时在装这个库。
开始./configure 出现错误
如图:
No package 'minigui' found .. 我擦,重新安装几次lib库还是没反应。这让我怎么办?
网上少部分人也说:设置PKG_CONFIG_PATH 变量,随便设置一下也是不行。
百般无奈下,换了root 用户,继续重新安装minigui-res-be-3.0.12.tar、libminigui-gpl-3.0.12.tar,有可能是lib库问题,没有装好,安装好后,还是出现以上问题。几乎装了两遍还是不好使。
之后, 重装完 libminigui-gpl 三遍后
输入:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
之后 居然成功了。。我撤。终于逃离苦海了。
但是能笑到最后的人很少很少。。。
接下来
make 一下,又出现错误
这个错误别人很少有人犯。嵌入式开发最痛苦的不是难,而是烦,而且算法再难一帮人已经给你铺好路了,百度一搜一堆,嵌入式开发根本没几个人给你铺路,不会怎么办?百度谷歌没有,自己解决!
之前编译Linux 2.6 内核也往往会出现错误,所以看到这个错误也有一种相似感,突然灵感出现。
尼玛,这不就是gcc 编译器太高了。导致无法编译太低版本的Makefile 么?
怎么解决?凉拌!
顺藤摸瓜,将那个找不到的头文件注释一下就OK了。这种错误都是一样的。gcc 找不到 就注释一下,就可以蒙混过关了。
如图:
这样就可以编译成功了。
之后 cd same ; ./same
出现错误:
Does not find matched engine: qvfb.
InitGUI (step 4): Can not get graphics engine information!
作为 初级嵌入式的linuxer 不出错才是一件怪事。。。
某网友说 :
解决方法:启动qvfb &
qvfb2 根本无法启动的擦,后台启动也没用。
之后找到个网友正规一点的:
代码如下:
# vi /usr/local/etc/MiniGUI.cfg
在里面找到
[system]
# GAL engine
#gal_engine=fbcon
gal_engine=qvfb //这里修改 # IAL engine
#ial_engine=console
ial_engine=qvfb //这里修改 mdev=/dev/mouse
mtype=IMPS2 [fbcon]
defaultmode=1024x768-16bpp [qvfb]
defaultmode=640x480-16bpp
display=0
结果错误还是一样。
最终发现被网友误导了。
不能说网友说的不对,这种方法应该是适合 MiniGui v1 ~ v2 .
v3版本改了,而且是刚出不久,所以很多东西都要自己去实践、探索。
对于官方这配置文件,真的很无语。
所以求稳定,好配置,版本越低越好,版本越高错误越多。
改这个文件是对的,不过其实只要改一处就可以了。
[pc_xvfb]
defaultmode=1024x768-16bpp
window_caption=XVFB-for-MiniGUI-3.0-(Qt-Version)
exec_file=/usr/local/bin/qvfb2 [只改这里,其他地方不改]
改了这一处后,就成功执行了!出现扫雷画面那一刻,泪水都哗哗的啦。。。
不过革命还要继续!
明天任务是将MiniGUI 移植到龙芯2H板子上。
下面这些文件是MiniGUI 完善应用的软件:
Ps : 我想说,宁可刷无比折磨人的算法题,也不想浪费时间在装这些嵌入式开发软件。太蛋疼了!
Linux 宿主机安装 MiniGUI的更多相关文章
- Deepin Linux 实体机安装
Deepin Linux 实体机安装 1.下载ISO镜像并刻录到U盘上 系统ISO镜像下载 深度技术 刻录工具下载 深度技术(下方有深度启动盘制作工具下载) 这两个都下载好之后,打开刻录工具,选择镜像 ...
- kali linux宿主机和虚拟机互访实现方案
1.攻防模拟中,将DVWA安装到自己的宿主机中,在kali Linux中通过sqlmap和其他工具启动嗅探攻击,需要配置网络.虚拟机采用桥接方式,并复制Mac地址状况. 2.查看各自系统下的IP地址. ...
- Linux:宿主机通过桥接方式连接的VMware内部Linux14.04虚拟机(静态IP)实现上网方案
首先,我们要弄清楚三种常见的连接方式中的桥接方式的网络结构: .bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器.在桥 ...
- Arch Linux实体机安装记录
下面将记录笔者在戴尔笔记本安装arch linux的过程,用于记录,以便下次使用. 本文的内容参考arch linux官方Wiki. 首先,使用Power ISO把镜像安装到U盘,使用U盘安装. 通过 ...
- Linux虚机安装配置Tomcat
d第一步:下载Tomcat包,网址http://tomcat.apache.org/ 选择tar.gz包下载,并传到虚机中 第二步:解压下载好的Tomcat包 命令:tar -zxvf apache- ...
- 宿主机共享文件夹给不同Linux虚拟机的方法
一.Windows/Linux宿主机共享文件夹给VMWare中的Linux虚拟机 1.能安装vmware tools1)在vmware的ubuntu中安装vmware tools2)在vmware中开 ...
- docker 访问宿主机网络
使用宿主机IP 在安装Docker的时候,会在宿主机安装一个虚拟网关docker0,我们可以使用宿主机在docker0上的IP地址来代替localhost. 首先,使用如下命令查询宿主机IP地址: i ...
- 如何配置 VirtualBox 中的客户机与宿主机之间的网络连接
如何配置 VirtualBox 中的客户机与宿主机之间的网络连接 作者: Aaron Kili 译者: LCTT rusking | 2017-03-01 13:40 评论: 3 收藏: 3 当你 ...
- 宿主机远程桌面连接vmware中的虚拟机
参考了:http://jingyan.baidu.com/article/3052f5a1e8c56397f21f8674.html 感谢~ 宿主机安装了vmware,vmware中安装虚拟机,怎 ...
随机推荐
- java回调机制及其实现(转)
1. 什么是回调函数 回调函数,顾名思义,用于回调的函数.回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数.回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机.回调 ...
- Android ADT Bundle(Eclipse with ADT) ADT R23
ADT Bundle Platform Package Size MD5 Checksum Windows 32-bit adt-bundle-windows-x86-20140624.zip 377 ...
- CSM认证培训知识汇总
后两天的CSM训练.我们非常颠覆旧观念,有关的一些观点的简要培训记录: 约定大于监管:监督是管理水平.或旧有格局,该公约是一个团队与自己的法规. 工具:传统的管理工具和服务经理,还有许多人是PM正在使 ...
- Dos命令将合并两个文本文件的内容
当生产线的问题,有一个放b.txt的内容被添加到a.txt这需要采取.在考虑这个问题.我的第一感觉是敲代码.阅读b.txt内容,渐进写a.txt.想起昨天在加工处理生产线600M决的方法,我用java ...
- linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)
linux 3.4.103 内核移植到 S3C6410 开发板 这个星期差点儿就搭在这里面了,一開始感觉非常不值得,移植这样的浪费时间的事情.想立刻搞定,然后安安静静看书 & coding. ...
- linux_sed 正则替换
目标 替换 test.data文件中的 原正则: (\d{4}[^)]*?) sed不支持 \d 改为0-9 测试 :head test.data| sed -r "s/([0-9]{4}[ ...
- 准备战争“软测试”之DB基础知识
"数据库"东西这个陌生和数据,进入提高班,从第二年开始接触,的项目还是自考的学习加起来也有3遍了.这仅仅是一个開始,软考又要对数据库进行全面的分析,那么如今就让我们再一次剖析它吧! ...
- 求解决!!!SystemVerilog于ModelSim在编译和执行
我们正在学习SV流程,样品执行书.. 功能:函数返回数组. Code1: /*书上提供的样例.存在错误,不可执行 function void init(ref int f[5], int start) ...
- Swift中文教程(三)--流程控制
原文:Swift中文教程(三)--流程控制 Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花 ...
- 归并排序 & 快速排序
归并排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用. 将已有序的子序列合并,得到完全有序的序列:即先使每个子序列有 ...