qte2.3.12多线程库libqte-mt的编译
来源:互联网 发布:郑州网络 编辑:程序博客网 时间:2024/05/23 14:40
FriendlyArm2440的板子,之前的串口一直用QextSerialPort,定时查询方式读写串口。想提高效率,使用中断方式,查了查,linux里写终端驱动比较繁琐,又看到很多推荐使用多线程方式的。于是决定试试看,pro文件中加thread选项,生成Makefile中有-lqte-mt,link里加-lpthread。提示找不到libqte-mt,开始没搞明白,查了一下发现默认的库编译时候没有用-thread选项。也就是说,需要加-thread选项重新编译x86qtotpia和armqtopia两个包。
参照FriendlyArm光盘文件里的build脚本,加-thread重新configure,make失败。翻来覆去几次,都是失败。只好去搜搜,最后找到了FriendlyArm官方论坛,里面版主已经有详细的解释。照法操作,一次成功。x86和arm的libqte-mt都OK了。
Re:回 8楼(kasim) 的帖子
引用
引用第17楼liangruisan于2010-02-01 13:00发表的 回 8楼(kasim) 的帖子 :
高手,怎么“这可以通过在qte的配置上加上'-thread'参数做到”做才能有效果,能够在详细点吗?谢谢了,我这个问题纠结了很久。谢谢了
由于qtopia 2.2.0的makefile里的问题,你现在只能自己手动编译出支持thread的libqte-mt.so. 具体做法如下:
1. 按照手册上的步骤,用“build”或者"build-all"脚本做一次完整的qtopia 2.2.0的编译;
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. 编译libqte-mt
$make src-mt
编译完成后将在qtopia-2.2.0-FriendlyARM/qtopia/lib目录下生成所期待的libqte-mt.so.*文件。用nm命令可以看到现在qt embedded中就已经加入了QThread支持:
引用
alex@aling-xw4400:~/x86-qtopia/qtopia-2.2.0-FriendlyARM/qt2$ nm ../qtopia/lib/libqte-mt.so.2.3.12 |grep -i QThread
0015deb0 t _GLOBAL__I_qthread_unix.cpp
0039d0a0 b _ZL23qthreadposteventprivate
0039d094 b _ZL40QThreadPostEventPrivate_metaObj_unloader
0015ec40 T _ZN23QThreadPostEventPrivate10sendEventsEv
...
0038f1a0 V _ZTV23QThreadPostEventPrivate
0038f240 V _ZTV5QListI14QThreadQtEventE
0038f208 V _ZTV7QThread
0038f280 V _ZTV8QPtrDictI7QThreadE
原帖:http://www.arm9home.net/read.php?tid-2298-page-3-fpage-1.html
- qte2.3.12多线程库libqte-mt的编译
- 多线程MT和多线程MD的区别
- qte2读取中文文件的测试.txt
- VC编译选项 多线程(/MT) 多线程调试(/MTd) 多线程 DLL (/MD) 多线程调试 DLL (/MDd)
- VC编译选项 多线程(/MT) 多线程调试(/MTd) 多线程 DLL (/MD) 多线程调试 DLL (/MDd)
- 详解多线程MT和多线程MD的区别
- Linux下编译boost库生成 libboost_thread-mt.a 的方法
- Linux下编译boost库生成 libboost_thread-mt.a 的方法
- Linux下编译boost库生成 libboost_thread-mt.a 的方法
- 转载 关于多线程MT和MD的区别。
- 编译静态的BOOST libs *-vc90-mt-sgd.lib
- Windows编程 MD(d)、MT(d)编译选项的区别
- Windows编程 MD(d)、MT(d)编译选项的区别
- Windows编程 MD(d)、MT(d)编译选项的区别
- MD(d)、MT(d)编译选项的区别
- Windows编程 MD(d)、MT(d)编译选项的区别 .
- Windows编程 MD(d)、MT(d)编译选项的区别
- vs中编译选项MD、MDd、MT的区别
- WebQQ桌面化
- ubuntu9.10构建nfs服务器端
- SQL server 2008 安装资料和下载地址
- ubuntu 9.10下安装arm-linux-gcc-4.3.2
- 脚本语言
- qte2.3.12多线程库libqte-mt的编译
- 开发板连接并口的注意点(本人备忘OK2440--IBM R52)
- About Frame Rates or Why 29.97?
- 使用Jlink仿真及ADS1.2调试(ok2440)
- java可变参数学习
- nginx启动、重启、停止脚本
- c#读取资源文件
- 在ubuntu 上下载 编译android 源码
- 远程登录工具C-kermit