解决鼠标要先动键盘才有反应的BUG(08.4.13)
环境:fedora 7
minigui:1.3.3
编译器:arm-linux-gcc 2.95.3
by:王敏敏
参照:
1.
将1.6 的 src/include 整个目录拷贝到1.3中。
其中,/src/include/readbmp.h
/src/include/dc.h
misc.h三个保留原来的。
不行!make时错误:
static.c:49: static.h: No such file or directory
make[3]: *** [static.lo] 错误 1
make[3]: Leaving directory `/home/source/minigui/minigui1.3.x/libminigui-
1.3.3/src/control'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/home/source/minigui/minigui1.3.x/libminigui-
1.3.3/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/home/source/minigui/minigui1.3.x/libminigui-
1.3.3'
make: *** [all] 错误 2
2.
将/src/include/control中的文件还原为1.3.3的。
编译库没问题。但是编译应用程序的时候出了问题:
/home/tools/crosstool/2.95.3/arm-linux/lib/libminigui.so: undefined
reference to `__mg_cur_input'
collect2: ld returned 1 exit status
查找发现,`__mg_cur_input'这个在1.6.2的ial.c中,所以用1.6.2的ial.c替代1.3.3
中的ial.c
重新编译库和应用程序,均OK,但是运行程序还是得先动鼠标,然后键盘才有反应!
3.
将1.6.2-str中src/ial中所有拷贝到1.3.3的对应目录中。
其中,dummy.c文件还用1.3.3的,不进行拷贝。
编译库时候错误:
make[2]: Entering directory `/home/source/minigui/minigui1.3.x/libminigui-
1.3.3/src/ial'
Makefile:302: *** 遗漏分隔符 。 停止。
make[2]: Leaving directory `/home/source/minigui/minigui1.3.x/libminigui-
1.3.3/src/ial'
make[1]: *** [clean-recursive] 错误 1
make[1]: Leaving directory `/home/source/minigui/minigui1.3.x/libminigui-
1.3.3/src'
make: *** [clean-recursive] 错误 1
4.
还原src/ial下make.am和make.in文件,编译库文件时候还是出错:
make[3]: Entering directory `/home/source/minigui/minigui1.3.x/libminigui-
1.3.3/src/ial/native'
Makefile:249: *** 遗漏分隔符 。 停止。
make[3]: Leaving directory `/home/source/minigui/minigui1.3.x/libminigui-
1.3.3/src/ial/native'
5.
还原src/ial/native下的make.am和make.in文件,编译库文件还是出错:
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I../include
-g -O2 -D__MINIGUI_LIB__ -D_REENTRANT -g -Wall -Wstrict-prototypes -pipe -
UNDEBUG -D_DEBUG -c ial.c -Wp,-MD,.deps/ial.TPlo -fPIC -DPIC -o
.libs/ial.lo
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I../include
-g -O2 -D__MINIGUI_LIB__ -D_REENTRANT -g -Wall -Wstrict-prototypes -pipe -
UNDEBUG -D_DEBUG -c ial.c -Wp,-MD,.deps/ial.TPlo -o ial.o >/dev/null 2>&1
mv -f .libs/ial.lo ial.lo
make[4]: *** 没有规则可以创建“libial.la”需要的目标“ep7211.lo”。 停止。
make[4]: Leaving directory `/home/source/minigui/minigui1.3.x/libminigui-
1.3.3/src/ial'
6.
将1.3.3的src/ial下所有内容复制到当前src/ial下,对于重叠文件不进行覆盖,即将
1.3.3中比1.6.2-str中src/ial中多的文件复制过来。
OK,搞定,库和程序编译均没问题,运行时候不动鼠标键盘也有反应了。
总结:
1.将1.6.2的src/include中所有内容都复制到1.3.3的对应目录;
注意:src/include/control保留原来1.3.3内容不变;
src/include中readbmp.h、dc.h、misc.h保留原来1.3.3的。
2.将1.6.2的src/ial中所有内容都复制过来;
注意:src/ial中make.am, make.in, dummy.c保留原来1.3.3的;
src/ial/native中make.am, make.in保留原来1.3.3的
阅读(1966) | 评论(0) | 转发(0) |