主题 : arm-qtopia2.2.0   qthread的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 40367
精华: 0
发帖: 31
金钱: 155 两
威望: 31 点
综合积分: 62 分
注册时间: 2011-03-17
最后登录: 2011-04-20
楼主  发表于: 2011-04-20 21:53

 arm-qtopia2.2.0   qthread的问题

用的软件包 是  mini2440自己带的 光碟的
系统 Fedora9

有一个 thread多线程的例子  我在x86的qfvb上已经编译成功且能显示
然后用arm的编译后也通过,但移植到版上不能运行

arm 多线程的编译是
多线程编译
1. 按照手册上的步骤,用“build”或者"build-all"脚本做一次完整的qtopia 2.2.0的编译;
Cp  lib  将lib  备份
2. 在解压出来的qtopia-2.2.0-FriendlyARM目录下执行
$source setQteEnv

3. 进入qtopia-2.2.0-FriendlyARM/qt2目录,清除之前编译生成的文件然后手动配置qt embedded以支持multi-thread:
$cd qt2
$make clean
$echo yes |./configure -embedded -no-xft -qconfig qpe -depths 16,32 -system-jpeg -gif -thread

注意:上面configure后的参数是我自己的配置,可能与你的不同。configure之后的参数应该与你自己x86-qtopia或者arm-qtopia目录下的“build“脚本里的”echo yes | ./configure -qte“之后的参数保持一致, 只是在最后加上"-thread"

4. 上面的步骤执行后会在当前目录下产生src-mt.mk文件,用编辑器将其内容的最后一行”cd src; $(MAKE) clean“删除或注释掉;

5修改将qt2/src/tools/qtextcodec.cpp改成下面的
2148-2180行
#define QT_NO_EUCJPCODEC
#ifndef QT_NO_EUCJPCODEC
(void)new QEucJpCodec;
#endif
#define QT_NO_SJISCODEC
#ifndef QT_NO_SJISCODEC
(void)new QSjisCodec;
#endif
#define QT_NO_JISCODEC
#ifndef QT_NO_JISCODEC
(void)new QJisCodec;
#endif
#define QT_NO_EUCKRCODEC
#ifndef QT_NO_EUCKRCODEC
(void)new QEucKrCodec;
#endif
#define QT_NO_GBKCODEC
#ifndef QT_NO_GBKCODEC
(void)new QGbkCodec;
#endif
#define QT_NO_BIG5CODEC
#ifndef QT_NO_BIG5CODEC
(void)new QBig5Codec;
#endif
#define QT_NO_RTLCODEC
#ifndef QT_NO_RTLCODEC
(void)new QArabicCodec;
(void)new QHebrewCodec;
#endif
#define QT_NO_TSCIICODEC
#ifndef QT_NO_TSCIICODEC
(void)new QTsciiCodec;
#endif


6. 编译libqte-mt
$make src-mt

编译完成后将在qtopia-2.2.0- FriendlyARM/qtopia/lib目录下生成所期待的libqte-mt.so.*文件。用nm命令可以看到现在qt embedded中就已经加入了QThread支持
Cp  libqte。So*

然后将lqte  lqtopia lqtoia2  从备份中拷贝会来lib



在编译的时候  。pro中加入CONFIG            +=thread
在Makefile中 LIBS  加入 lqte  lqtoia2  
编译没有警告和错误  下面是 make。log
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os -D_REENTRANT  -DQT_NO_QWS_VFB -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"thread\" -DQTOPIA_TRTARGET=\"thread\" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -I. -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/include -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/mainwindow.o mainwindow.cpp
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os -D_REENTRANT  -DQT_NO_QWS_VFB -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"thread\" -DQTOPIA_TRTARGET=\"thread\" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -I. -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/include -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/trithread.o trithread.cpp
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os -D_REENTRANT  -DQT_NO_QWS_VFB -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"thread\" -DQTOPIA_TRTARGET=\"thread\" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -I. -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/include -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/sinthread.o sinthread.cpp
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os -D_REENTRANT  -DQT_NO_QWS_VFB -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"thread\" -DQTOPIA_TRTARGET=\"thread\" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -I. -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/include -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/main.o main.cpp
/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/bin/moc mainwindow.h -o .moc/release-shared/moc_mainwindow.cpp
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os -D_REENTRANT  -DQT_NO_QWS_VFB -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"thread\" -DQTOPIA_TRTARGET=\"thread\" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -I. -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/include -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/moc_mainwindow.o .moc/release-shared/moc_mainwindow.cpp
/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/bin/moc trithread.h -o .moc/release-shared/moc_trithread.cpp
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os -D_REENTRANT  -DQT_NO_QWS_VFB -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"thread\" -DQTOPIA_TRTARGET=\"thread\" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -I. -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/include -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/moc_trithread.o .moc/release-shared/moc_trithread.cpp
/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/bin/moc sinthread.h -o .moc/release-shared/moc_sinthread.cpp
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os -D_REENTRANT  -DQT_NO_QWS_VFB -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"thread\" -DQTOPIA_TRTARGET=\"thread\" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -I. -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/include -I../../arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/moc_sinthread.o .moc/release-shared/moc_sinthread.cpp
arm-linux-g++  -o thread .obj/release-shared/mainwindow.o .obj/release-shared/trithread.o .obj/release-shared/sinthread.o .obj/release-shared/main.o .obj/release-shared/moc_mainwindow.o .obj/release-shared/moc_trithread.o .obj/release-shared/moc_sinthread.o   -luuid -lqtopia2 -lqtopia -lqpe -L/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/lib -L/home/QT/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/lib -lqte-mt -lpthread -lqte -lqtopia2


级别: 新手上路
UID: 44483
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-04-25
最后登录: 2011-04-27
1楼  发表于: 2011-04-26 10:29

 Re:arm-qtopia2.2.0  qthread的问题

我也遇到同样的问题,不知道该怎么解决,希望有高手指点一下
级别: 新手上路
UID: 51095
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2011-06-29
最后登录: 2013-05-23
2楼  发表于: 2011-07-04 17:58

 Re:arm-qtopia2.2.0  qthread的问题

不知道解决了没有,如果解决,盼楼主能共享啊
级别: 新手上路
UID: 46822
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
综合积分: 20 分
注册时间: 2011-05-16
最后登录: 2011-07-27
3楼  发表于: 2011-07-16 10:14

 Re:arm-qtopia2.2.0  qthread的问题

是啊,楼主问题怎么解决的啊?