Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1137086
  • 博文数量: 276
  • 博客积分: 8317
  • 博客等级: 少将
  • 技术积分: 2329
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-12 08:17
个人简介

http://ads.buzzcity.net/adpage.php?partnerid=40096

文章分类

全部博文(276)

文章存档

2013年(1)

2012年(38)

2011年(102)

2010年(85)

2009年(45)

2008年(5)

分类: LINUX

2008-12-24 23:30:03

最近交叉编译了一版qt-embedded,过程以及遇到问题解决方案现贴出来共享一二,欢迎讨论。

到trolltech官方网站下载qt-embedded;
确认tool chain可用;
解压tarball后,根据你自己的硬件平台,修改或者增加gfx, mouse, kbd支持;
src/plugins/gfxdrivers/
src/plugins/mousedrivers/
src/plugins/kbddrivers/

mkdir build-target
cd build-target
../qt-embedded-linux-opensource-src-4.4.3/configure -embedded arm -webkit -qt-gfx-xxx -plugin-gfx-xxx -qt-kbd-xxx -plugin-kbd-xxx -qt-mouse-xxx -plugin-mouse-xxx -optimized-qmake -release -xplatform qws/linux-arm-g++
make
make install
(xxx为硬件平台上的驱动的名称)
遇到几个问题:
在加上cups时,发现编译这个会被configure挡掉,在configure文件里拿掉一些挡掉的语句,发现编译不过,这个时候想起需要事先编译好目标平台的cups库。

安装会将qt编译工具,库,头文件,specs文件等拷贝到/usr/local/Trolltech/QtEmbedded-4.4.3-arm/,当然,你也可以在配置时指定安装路径,否则...
这个时候用/usr/local/Trolltech/QtEmbedded-4.4.3-arm/bin/qmake来为一个demo生成Makefile,打开Makefile一看,发现CC=gcc而不是arm-linux-gcc,这就郁闷了,检查一下PATH,发现arm的toolchain赫然在列,看来问题和toolchain没有关系,出在qmake身上
用这个看一下/usr/local/Trolltech/QtEmbedded-4.4.3-arm/bin/qmake -help,发现有个spec的东东,这个会给目标平台指定一些东东,到/usr/local/Trolltech/QtEmbedded-4.4.3-arm下一看,
ls mkspecs/default -l
mkspecs/default -> qws/linux-arm-g++
没有错阿,难道qmake的源代码有问题?
打开qmake的源代码,看了一半,想了一下,还是去mkspecs目录下试个究竟,将这个目录下的除了common default features qconfig.pri qws其余的删了个遍,然后去重新qmake那个demo,呵呵,这下qmake没有成功,提示说QMAKESPEC(linux-g++)没有找到,晕哦,default不是指向qws/linux-arm-g++吗?除非......对了,环境变量
env一下
果然, QMAKESPEC=linux-g++赫然在列
问题应该是我以前安装的qt定义了这个环境变量,而这里编译出来的qmake也引用了。改掉定义环境变量的地方,发现这次对了,搞定...差点走了弯路,跑去死磕qmake的源代码...
其实qmake -spec default也可以解决问题 (因为mkspecs/default -> qws/linux-arm-g++)


阅读(4527) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-01-07 09:07:36

我也在交叉編譯qt-embedded-4.4.3,发现编译到./src/3rdparty/webkit/JavaScriptCore/kjs/collector.cpp 的355行 pthread_getattr_np没有声明,不知道你是否有遇到这个问题, 是不是我的toolchain的问题呢