Ubuntu16.04下MINIGUI 3.2.0开发环境搭建全攻略

张开发
2026/4/10 12:14:25 15 分钟阅读

分享文章

Ubuntu16.04下MINIGUI 3.2.0开发环境搭建全攻略
1. MINIGUI开发环境搭建概述第一次接触MINIGUI的朋友可能会好奇这个看起来像嵌入式系统专用的小型GUI框架为什么在Ubuntu16.04上安装会这么复杂其实MINIGUI作为国内自主研发的轻量级图形界面系统在工业控制、医疗设备、智能家居等领域有着广泛应用。我去年接手一个医疗设备项目时就深刻体会到了搭建MINIGUI开发环境的酸爽。MINIGUI 3.2.0版本相比早期版本在性能和功能上都有显著提升但安装过程也确实让不少开发者头疼。经过多次实践我总结出一套相对可靠的安装方法特别适合在Ubuntu16.04系统上部署。为什么强调要用Ubuntu16.04因为新版本Ubuntu的库依赖关系经常变化会导致各种莫名其妙的编译错误。2. 安装前的准备工作2.1 系统环境确认在开始之前请确保你已经完成了Ubuntu16.04系统的安装。我建议使用纯净的系统环境避免之前安装的软件造成干扰。可以通过以下命令检查系统版本lsb_release -a输出应该显示Ubuntu 16.04。如果不是建议重新安装系统否则后续可能会遇到各种兼容性问题。2.2 安装必备工具链MINIGUI编译需要完整的开发工具链。执行以下命令一次性安装所有必需工具sudo apt-get update sudo apt-get install -y git gcc g binutils autoconf automake libtool make cmake pkg-config这里有个小技巧如果你不确定某个包是否已经安装可以使用dpkg -s 包名命令查询。比如dpkg -s cmake会显示cmake的安装状态和版本信息。2.3 安装依赖库MINIGUI运行时需要一些基础图形库的支持。这些库可以通过apt直接安装sudo apt-get install -y libgtk2.0-dev libjpeg-dev libpng12-dev libfreetype6-dev libsqlite3-dev libxml2-dev特别注意libpng12-dev这个包在新版Ubuntu中可能已经被移除但在16.04中是可以正常安装的。如果遇到找不到包的情况可以尝试添加Ubuntu16.04的官方源。3. 配置GitHub访问3.1 生成SSH密钥由于MINIGUI源码托管在GitHub上我们需要配置SSH密钥来克隆代码库。执行以下命令生成密钥ssh-keygen -t rsa -C your_emailexample.com生成过程中会提示输入保存位置和密码直接按回车使用默认值即可。完成后公钥会保存在~/.ssh/id_rsa.pub文件中。3.2 添加密钥到GitHub账户用文本编辑器打开公钥文件cat ~/.ssh/id_rsa.pub复制全部内容然后登录GitHub在Settings - SSH and GPG keys页面点击New SSH key粘贴公钥内容并保存。3.3 测试连接执行以下命令测试SSH连接是否成功ssh -T gitgithub.com如果看到Hi username! Youve successfully authenticated...的欢迎信息说明配置成功。如果失败可以尝试执行ssh-add ~/.ssh/id_rsa添加密钥到ssh-agent。4. 获取MINIGUI源代码4.1 克隆代码仓库MINIGUI 3.2.0的完整构建脚本托管在GitHub上使用以下命令克隆git clone gitgithub.com:VincentWei/build-minigui-3.2.gitVincentWei是MINIGUI的创始人这个仓库包含了构建MINIGUI所需的所有组件。4.2 获取子模块代码进入克隆的目录运行fetch脚本下载所有子模块cd build-minigui-3.2 ./fetch-all.sh这个过程可能会比较慢因为要下载MINIGUI核心代码、资源文件和示例程序。如果中途失败可以多次运行该脚本它会自动续传。5. 编译安装MINIGUI5.1 安装GVFB虚拟帧缓冲GVFB是MINIGUI的虚拟帧缓冲设备用于在没有物理显示设备的环境下运行MINIGUI程序cd gvfb cmake . make sudo make install编译过程中可能会提示缺少某些头文件通常是相应的dev包没有安装可以根据错误信息补充安装依赖库。5.2 安装Chipmunk物理引擎MINIGUI的一些高级功能需要Chipmunk物理引擎支持cd ../3rd-party/chipmunk-5.3.1 cmake . make sudo make install这个步骤一般比较顺利如果出现权限问题可以在make install前加上sudo。5.3 编译MINIGUI资源文件资源文件包含字体、图标等MINIGUI运行必需的素材cd ../minigui-res ./autogen.sh ./configure sudo make installautogen.sh脚本会生成configure文件如果提示缺少automake或autoconf请确认2.2节的工具链是否安装完整。5.4 完整构建MINIGUI回到项目根目录执行完整构建脚本cd ../.. ./build-all.sh这个过程会比较长可能要10-30分钟不等取决于你的机器性能。如果中途报错可以尝试再次运行该脚本很多临时性问题可以通过重试解决。6. 验证安装结果6.1 运行演示程序安装完成后可以运行内置的演示程序验证/usr/local/bin/mguxdemo如果看到一个手机风格的界面说明MINIGUI已经成功安装。按ESC键可以退出演示程序。6.2 编译运行示例游戏MINIGUI自带了一个消除类游戏示例cd mg-sample ./configure make cd same ./same游戏运行时可能会提示找不到字体或资源这是因为环境变量没设置正确。可以暂时通过指定资源路径解决MINIGUI_RES_PATH/usr/local/share/minigui/res ./same7. 开发第一个MINIGUI程序7.1 HelloWorld示例代码创建一个hello.c文件输入以下代码#include stdio.h #include minigui/common.h #include minigui/gdi.h #include minigui/minigui.h #include minigui/window.h #include minigui/control.h 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, Hello World!); 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; }7.2 编译链接程序使用gcc编译时需要链接MINIGUI的库文件gcc hello.c -o hello -lminigui_ths -ljpeg -lpng -lz -lpthread -lfreetype注意库的链接顺序很重要-lminigui_ths必须放在第一位因为它依赖后面的库。7.3 解决库缺失问题如果编译时提示找不到minigui_ths库需要安装MINIGUI的开发包wget -qO - http://files.fmsoft.cn/ubuntu/key/fmsoft.gpg | sudo apt-key add - sudo sh -c echo deb http://files.fmsoft.cn/ubuntu/ xenial restricted /etc/apt/sources.list sudo apt update sudo apt install libminigui-ths-dev安装完成后再次尝试编译应该就能成功了。8. 常见问题解决在实际安装过程中可能会遇到各种问题。这里分享几个我遇到过的典型问题及解决方法问题1编译时出现png.h: No such file or directory解决方法安装libpng开发包sudo apt-get install libpng12-dev问题2运行程序时报错error while loading shared libraries: libminigui_ths.so.3.2: cannot open shared object file解决方法添加库路径到ldconfigsudo sh -c echo /usr/local/lib /etc/ld.so.conf.d/minigui.conf sudo ldconfig问题3GVFB运行时无法打开显示解决方法检查DISPLAY环境变量是否正确设置或者尝试使用sudo运行。有时候需要先启动虚拟帧缓冲gvfb export DISPLAY:0 ./your_minigui_program问题4make过程中出现语法错误解决方法这通常是因为系统时间不正确导致的可以同步系统时间sudo ntpdate pool.ntp.orgMINIGUI的环境搭建确实比一般的开源项目要复杂但一旦搭建成功后续的开发工作就会顺利很多。建议在成功安装后对整个系统做个快照方便以后恢复。

更多文章