linux QT4.8.6 webkit,Qt4.8.6交叉编译无法编译出webkit

使用如下命令config代码,即使加上 -webkit 参数,也无法编译出来:

./configure -v --prefix=/opt/Qtopia4.8.6_mix200/ -prefix-install -no-pch -xplatform qws/linux-arm-himix200-g++ -arch arm -embedded arm -qt-freetype -no-largefile -fast -release -no-qt3support -no-cups -no-opengl -no-phonon -phonon-backend -no-scripttools -no-libtiff -no-gif -no-libmng -no-nis -no-svg -qt-mouse-tslib -qt-gfx-transformed -qt-gfx-linuxfb -webkit

但是同样的配置,海思3536、3536C编译都能正常编译出webkit,甚至不加该参数都可以,但是在海思 3519A 平台始终无法编译出来,为什么呢?

仔细查找 configure 的输出,发现很多 webkit 相关的工程都被 skipping 掉了,WebKit module是no,为什么会被忽略呢?我们已经加上 -webkit 参数了,如何查找问题?

a76772d99e6eaa0ce7064ca729c0407d.png

188b6a8267f8aa64cf0a946ca8c14ecb.png

我们使用如下命令查看 configure 脚本:

cat configure

然后在编辑器中查找 webkit 相关配置,看到:

91bccd96e78ffcc72a35f6a10dcfb2a6.png

仔细观察发现几个值得注意的地方,一个是默认情况,CFG_WEBKIT 值是auto,最重要的是,它检查了 gcc 编译器版本,会配置 canBuildWebKit=“no”,检测的脚本主要部分如下:

*-g++*)

# Check gcc's version

case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in

4*|3.4*)

;;

3.3*)

canBuildWebKit="no"

;;

*)

canBuildWebKit="no"

canBuildQtXmlPatterns="no"

;;

esac

;;

发现检测到 gcc -dumpversion 版本是 4.、3.4的时候,正常编译,3.3*会做限制,其他情况都直接禁止了 webkit 的编译,我们去看3536、3536C和3519A的gcc版本,发现分别是4.8.3、4.9.4和6.3.0,所以我们发现其他平台都能正常编译,但是3519A平台无法编译出 webkit,为此我们修改 configure 脚本 7733 行,修改为:

4*|3.4*|5*|6*|7*)

让高版本的 gcc 也能编译 webkit,再重新configure、make、make install,WebKit module变成yes,webkit就能正常出来了。

当然,高版本的可能出现 error: ‘std::tr1’ has not been declared 报错,则按 “qt4.8.6交叉编译” 做修改即可。

另见 qt4.8.6交叉编译 : https://blog.csdn.net/yangyang031213/article/details/103720392

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值