电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
手把手教你安装MINIGUI编程环境 (MINIGUI版本3.2.0)
分 享
扫描二维码分享
手把手教你安装MINIGUI编程环境 (MINIGUI版本3.2.0)
linux
minigui
一口Linux
关注
发布时间: 2021-09-28
丨
阅读: 549
## 0. MINIGUI MiniGUI 是一款面向嵌入式系统的高级窗口系统(Windowing System)和图形用户界面(Graphical User Interface,GUI)支持系统,由魏永明先生于 1998 年底开始开发。 2002 年,魏永明先生创建北京飞漫软件技术有限公司,为 MiniGUI 提供商业技术支持,同时也继续提供开源版本,飞漫软件是中国地区为开源社区贡献代码最多的软件企业。最后一个采用 GPL 授权的 MiniGUI 版本是 1.6.10,从 MiniGUI 2.0.4 开始 MiniGUI 被重写并使用商业授权。 ![ ](https://img-blog.csdnimg.cn/4cfa73f47ba649dabadbb2ac1ba4a72b.png) ![ ](https://img-blog.csdnimg.cn/a1cc3af9e8bc44919863f15cfbce9a57.png) ## 一、安装准备 ### 1. 软件版本 安装MINIGUI编程环境 * MINIGUI版本3.2.0 * 安装系统:Ubuntu16.04 不得不说,MINIGUI的安装实在过于复杂,借此文安慰一下我历经7小时苦痛折磨的灵魂,整理一下我的安装与配置的过程(从0到运行helloworld程序),同时为后辈员工提供一点指导和帮助。 ### 2. 下载地址 本文参照MINIGUI的官方安装文档,文档地址:http://www.minigui.com/blog/minigui-3.2.0-released/ 操作系统请选用Ubuntu 16.04版,使用最新的Ubuntu可能会在安装过程中出现各种“奇怪的”错误(真是奇怪的错误,至今不知道怎么修复……) ## 二、安装前的准备工作 假设你已成功安装Ubuntu16.04操作系统 ### 1、安装各种依赖软件 你需要确保已经安装以下软件。若未安装,则可以执行sudo apt-get install 软件名进行安装。 ```bash 1) git 2) gcc/g++ 3) binutils 4) autoconf/automake 5) libtool 6) make 7) cmake 8) pkg-config ``` ### 2、安装各种依赖库 你需要确保已经安装以下依赖库。若未安装,则可以执行sudo apt-get install 库名进行安装。 ```bash 1) libgtk2.0-dev 2) libjpeg-dev 3) libpng12-dev 4) libfreetype6-dev 5) libsqlite3-dev 6) libxml2-dev ``` ### 3、配置Github的认证密钥 由于接下来需要从Github上克隆MINIGUI的安装包,因此这里需要配置Github的密钥认证。 1. 首先去Github上注册一个账号。注册是免费的。记住注册时填写的邮箱。 2. 然后在Ubuntu上,执行命令: ```bash ssh-keygen -t rsa -C(大写) 你的邮箱地址 ``` 执行该指令后会有提示信息。第一个提示信息表示生成的公钥私钥的保存位置。一般普通用户保存在~/.ssh内,root用户保存在/root/.ssh内(目录是隐藏的)。 第二个提示信息表示登入密码,直接按回车即可(表示不需要密码)。 第三个提示信息表示确认密码,也是直接按回车即可。 生成公钥私钥后,进入.ssh目录内,查看id_rsa.pub的内容。 进入Github,在账号内找到Settings,点击New SSH key,将id_rsa.pub的内容复制到文本框内,注意不要有遗漏否则会认证失败。 ![ ](https://img-blog.csdnimg.cn/80ad44a6b8ae49e59cb47099851c5145.png) ![ ](https://img-blog.csdnimg.cn/f2f1406b31304dd987033309e81d871a.png)![ ](https://img-blog.csdnimg.cn/512703c21fea4e93a27e56368cac4d59.png) 添加完毕后,在Ubuntu内执行`ssh -T git@github.com`测试连接是否成功。如果出现欢迎信息则表示连接Github成功。若出现Permission denied则表示连接失败。 连接失败可能是公钥私钥配置未生效。执行`ssh-add ~/.ssh/id_rsa`将刚才生成的公钥私钥添加到Github内,再次测试即可。 ## 三、下载完全版的MINIGUI安装包 使用git的clone(克隆)功能获取完整的MINIGUI3.2的代码文件。执行命令: ```bash git clone git@github.com:VincentWei/build-minigui-3.2.git ``` VincentWei是MINIGUI的发明人和维护者。 获取完毕后,进入build目录 ```bash cd build-minigui-3.2 ``` 运行该目录下的fetch脚本获取全部的MINIGUI的源代码。 ```bash ./fetch-all.sh ``` 等待下载完成即可。 ## 四、安装过程 以下目录,若未特殊说明,皆以build-minigui-3.2作为基准目录 ### 1、安装gvfb依赖库 进入gvfb目录。依次执行以下命令: ```bash cmake . (注意这个点(当前目录)不要忽略) make sudo make install ``` ### 2、安装chipmunk依赖库 进入3rd-party/chipmunk-5.3.1目录。依次执行以下命令: ```bash cmake . (注意这个点(当前目录)不要忽略) make sudo make install ``` ### 3、编译MINIGUI源代码 进入minigui-res目录。依次执行以下命令: ```bash ./autogen.sh ./configure sudo make install ``` ### 4、建立所有代码 回到build-minigui-3.2目录内,执行命令: ```bash ./build-all.sh ``` 等待build完成。 ## 四、验证安装是否成功 等待build完成,若无报错信息,则表示成功安装了MINIGUI3.2编程环境。 我们可以用两种方法验证是否安装成功。 ### 方法一: 进入到/usr/local/bin目录,发现该目录内有一个名为./mguxdemo的程序。运行该程序。 该程序是一个使用MINIGUI编写的类手机系统的应用程序,若可以运行该程序且无崩溃、无报错,则表示MINIGUI安装成功。 ![ ](https://img-blog.csdnimg.cn/32b8f1a4aee440d2954693829447c18f.png) ### 方法二: 进入到mg-sample目录。在该目录执行命令: ```bash ./configure make ``` 然后进入到当前目录下的same目录,运行same程序 ```bash ./same ``` 该程序是一个消除小游戏。 ![ ](https://img-blog.csdnimg.cn/f860da7529f9404b8370d999735b46f9.png) 注意:编译过程中可能会报错,再次执行一次./build-all.sh脚本即可。 ## 五、编写helloworld程序 接下来编写一个helloworld程序。代码参照《miniGUI编程指南》V3.0第二章的程序,但是稍有改动(主要是取消了进程模式改成线程模式)。代码如下: ```c #include
#include
#include
#include
#include
#include
static int HelloWin(HWND hwnd, int message, WPARAM wParam, LPARAM lParam) { HDC hdc; switch(message) { case MSG_PAINT: hdc = BeginPaint(hwnd); TextOut(hdc,60,60,"HelloWorld!"); 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; CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = "HelloWorld"; CreateInfo.hMenu = 0; CreateInfo.hCursor = GetSystemCursor(0); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = HelloWin;// CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = 240; CreateInfo.by = 180; 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; } ``` 然后运行gcc进行编译,但是要注意需要链接各种动态库。编译命令如下: ```bash gcc xxx.c -o xxx -lminigui_ths -ljpeg -lpng -lz -lpthread -lfreetype ``` 其中: * 1)lminigui_ths:MINIGUI在线程模式下运行需要的依赖库。注意该参数必须放在第一个因为它需要依赖后续的各种动态库。如果编译器显示无法找到该库,则参照下面的方法安装这个库。 //使用gcc编译时需要注意,若库A依赖库B,则A必须处在B的前面。 * 2)-ljpeg、-lpng:jpeg和png格式的图像支持库 * 3)-lz:数据压缩库 * 4)-lpthread:线程库 * 5)-lfreetype:字体库 运行结果如下: ![ ](https://img-blog.csdnimg.cn/89121dcf845b4c41a6d1b340c9c17ece.png) ## 六、libminigui_ths的安装过程 如果在编译时提示缺少minigui_ths库,则可以按以下步骤安装。 ### 1)获取FMsoft的GPG密钥 由于minigui_this库需要使用apt-get在MINIGUI的官方下载安装,因此需要事先获取他们的认证。执行命令: ```bash wget -qO - http://files.fmsoft.cn/ubuntu/key/fmsoft.gpg | sudo apt-key add - ``` 注意第二个可选项是大写字母欧 ### 2)将FMsoft添加到apt的安装服务器 使用vim编辑/etc/apt/source.list文件,在文件最末尾添加: ```bash deb http://files.fmsoft.cn/ubuntu/ xenial restricted ``` 保存退出后,执行命令更新apt配置。 ```bash sudo apt update ``` ### 3)下载安装 执行命令下载安装: ```bash sudo apt install libminigui-ths-dev ```
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
一口Linux
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交