接上篇,开始make,原以为不会有啥问题,因为以前不带dbus用qt4.8.1交叉编译过好多次,出现的问题都一一解决了。谁知make的时候出现错误:
In file included from qdbusconnection_p.h:70:0,
from qdbusconnection.cpp:52:
qdbus_symbols_p.h: In function 'void q_dbus_get_version(int*, int*, int*)':
qdbus_symbols_p.h:300:1: error: 'dbus_get_version' was not declared in this scope
make[1]: *** [.obj/release-shared-emb-arm/qdbusconnection.o] 错误 1
make[1]: 离开目录“/home/yan/download/qt-everywhere-opensource-src-4.8.1/src/dbus”
make: *** [sub-dbus-make_default-ordered] 错误 2
说是这个 dbus_get_version这个函数没定义,这个函数在qt源码的qt-everywhere-opensource-src-4.8.1/src/dbus/qdbus_symbols_p.h,打开后能找到这个函数!
怎么解决呢???
先百度,没有答案啊!接着google,在qt的国外官方用户论坛里,只找到关于这个bug的描述,没有说咋修复https://bugreports.qt-project.org/browse/QTBUG-23249。搜遍google只找到这么点资料,肿么办???耗费了三个小时为了这一句话,奶奶的,gedit qdbus_symbols_p.h,然后将
-DEFINEFUNC(void , dbus_get_version , (int *major_version_p,- int *minor_version_p,- int *micro_version_p),- (major_version_p, minor_version_p, micro_version_p), )这一整句话用/* */直接屏蔽掉!!!
再make就ok了。 不知道往下make还会不会报错,希望qt修复这个bug!
dbus_get_version was not declared in this scope 移植dbus,Qt4.8.1源码中的bug:---- 续上