minigui默认运行模式为线程模式
/* Define if build MiniGUI-Processes */
/* #undef _MGRM_PROCESSES */ //多进程模式默认关闭/* Define if build MiniGUI-Threads */
#define _MGRM_THREADS 1 //线程模式默认被打开
1、先将进程模式的宏定义打开
/* Define if build MiniGUI-Processes */
#define _MGRM_PROCESSES 1 //多进程模式默认打开/* Define if build MiniGUI-Threads */
/* #undef _MGRM_THREADS */ //关闭线程模式
2、修改mini/res下的Makefile
把以上有关server和client的注释给打开
3、回到mini目录下进行make && make install
4、编译通过后查看mini/src/server和mini/src/client下的文件是否生成对应的 .o 和 .lo 文件,有则说明将该部分代码编译进了库文件
5、将新的mini库拷贝到目标版上,运行之前的程序发现报错了?
这是因为我们这个程序是作为客户端,要运行客户端之前要先运行服务器mginit,服务器mginit的代码可以在minigui的示例代码下的 mg-samples-3.0.12/mginit文件夹中找到,将其编译生成一个可执行程序并放到目标板上运行 。
./mginit &
运行发现还是报错?
解决办法 :
mkdir /var/tmp
这时就报了另外一个错误?
mginit:Can not create task bar
这里又需要修改源码才能解决,通过打印定位到是在mini/res/gui/window.c中的CreateMainWindowEx这个函数中,修改如下:
make clean
再次编译,将新的库替换问题解决!!!