主题 : linux2.6.29+qtopia2.2.0 如何实现多线程编程呢? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 6261
精华: 0
发帖: 13
金钱: 130 两
威望: 130 点
贡献值: 0 点
综合积分: 26 分
注册时间: 2009-05-25
最后登录: 2010-07-27
楼主  发表于: 2009-06-29 15:37

 linux2.6.29+qtopia2.2.0 如何实现多线程编程呢?

管理提醒: 本帖被 arm9home 从 Linux技术交流专区 移动到本区(2009-09-10)
最近在做qt开发,需要用到多线程编程,不知道目前友善之臂提供的linux2.6.29+qtopia2.2.0能不能实现多线程编程?如何实现?
有做过的大侠指教!!!急
级别: 新手上路
UID: 24486
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2010-07-08
最后登录: 2011-05-18
1楼  发表于: 2010-07-09 12:05
每一步都按贴子写的,最后 在qt2/目录下执行make src-mt,出现下面的错误:
[root@Fedora qt2]# make src-mt
cd src/moc; make
make[1]: Entering directory `/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/src/moc'
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o mocgen.o mocgen.cpp
moc.y: In function ‘int main(int, char**)’:
moc.y:1272: warning: deprecated conversion from string constant to ‘char*’
moc.y:1290: warning: deprecated conversion from string constant to ‘char*’
moc.y:1300: warning: deprecated conversion from string constant to ‘char*’
moc.y:1319: warning: deprecated conversion from string constant to ‘char*’
moc.y:1323: warning: deprecated conversion from string constant to ‘char*’
moc.y: In function ‘void generateClass()’:
moc.y:2613: warning: deprecated conversion from string constant to ‘char*’
moc.y:2615: warning: deprecated conversion from string constant to ‘char*’
moc.y:2616: warning: deprecated conversion from string constant to ‘char*’
moc.y:2617: warning: deprecated conversion from string constant to ‘char*’
moc.y:2756: warning: deprecated conversion from string constant to ‘char*’
moc.y:2761: warning: deprecated conversion from string constant to ‘char*’
moc.y: In function ‘int yyparse()’:
moc.y:522: warning: deprecated conversion from string constant to ‘char*’
moc.y:524: warning: deprecated conversion from string constant to ‘char*’
moc.y:525: warning: deprecated conversion from string constant to ‘char*’
moc.y:526: warning: deprecated conversion from string constant to ‘char*’
moc.y:533: warning: deprecated conversion from string constant to ‘char*’
moc.y:551: warning: deprecated conversion from string constant to ‘char*’
moc.y:552: warning: deprecated conversion from string constant to ‘char*’
moc.y:564: warning: deprecated conversion from string constant to ‘char*’
moc.y:565: warning: deprecated conversion from string constant to ‘char*’
moc.y:566: warning: deprecated conversion from string constant to ‘char*’
moc.y:567: warning: deprecated conversion from string constant to ‘char*’
moc.y:568: warning: deprecated conversion from string constant to ‘char*’
moc.y:569: warning: deprecated conversion from string constant to ‘char*’
moc.y:570: warning: deprecated conversion from string constant to ‘char*’
moc.y:571: warning: deprecated conversion from string constant to ‘char*’
moc.y:572: warning: deprecated conversion from string constant to ‘char*’
moc.y:588: warning: deprecated conversion from string constant to ‘char*’
moc.y:589: warning: deprecated conversion from string constant to ‘char*’
moc.y:634: warning: deprecated conversion from string constant to ‘char*’
moc.y:638: warning: deprecated conversion from string constant to ‘char*’
moc.y:650: warning: deprecated conversion from string constant to ‘char*’
moc.y:670: warning: deprecated conversion from string constant to ‘char*’
moc.y:713: warning: deprecated conversion from string constant to ‘char*’
moc.y:729: warning: deprecated conversion from string constant to ‘char*’
moc.y:738: warning: deprecated conversion from string constant to ‘char*’
moc.y:739: warning: deprecated conversion from string constant to ‘char*’
y.tab.c:3175: warning: label ‘yyerrlab’ defined but not used
mocgen.cpp: At global scope:
mocgen.cpp:4: warning: ‘yyrcsid’ defined but not used
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qbuffer.o ../tools/qbuffer.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qcollection.o ../tools/qcollection.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qcstring.o ../tools/qcstring.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qdatastream.o ../tools/qdatastream.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qdatetime.o ../tools/qdatetime.cpp
../tools/qdatetime.cpp: In static member function ‘static bool QDate::leapYear(int)’:
../tools/qdatetime.cpp:574: warning: suggest parentheses around && within ||
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qfile.o ../tools/qfile.cpp
../tools/qfile.cpp: In member function ‘virtual int QFile::getch()’:
../tools/qfile.cpp:364: warning: suggest explicit braces to avoid ambiguous ‘else’
../tools/qfile.cpp: In member function ‘virtual int QFile::ungetch(int)’:
../tools/qfile.cpp:458: warning: suggest explicit braces to avoid ambiguous ‘else’
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qgarray.o ../tools/qgarray.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qgdict.o ../tools/qgdict.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qglist.o ../tools/qglist.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qglobal.o ../tools/qglobal.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qgvector.o ../tools/qgvector.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qiodevice.o ../tools/qiodevice.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qregexp.o ../tools/qregexp.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qstring.o ../tools/qstring.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qtextcodec.o ../tools/qtextcodec.cpp
../tools/qtextcodec.cpp: In constructor ‘QTextCodecFromIOD::QTextCodecFromIOD(QIODevice*)’:
../tools/qtextcodec.cpp:1074: warning: ‘byte’ may be used uninitialized in this function
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qtextstream.o ../tools/qtextstream.cpp
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qutfcodec.o ../tools/qutfcodec.cpp
../tools/qutfcodec.cpp: In member function ‘virtual int QUtf16Codec::heuristicContentMatch(const char*, int) const’:
../tools/qutfcodec.cpp:191: warning: suggest parentheses around && within ||
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o qfile_unix.o ../tools/qfile_unix.cpp
g++   -o ./moc mocgen.o qbuffer.o qcollection.o qcstring.o qdatastream.o qdatetime.o qfile.o qgarray.o qgdict.o qglist.o qglobal.o qgvector.o qiodevice.o qregexp.o qstring.o qtextcodec.o qtextstream.o qutfcodec.o qfile_unix.o    -lm
qtextcodec.o: In function `setupBuiltinCodecs()':
qtextcodec.cpp:(.text+0x1baa): undefined reference to `QEucJpCodec::QEucJpCodec()'
qtextcodec.cpp:(.text+0x1bbe): undefined reference to `QSjisCodec::QSjisCodec()'
qtextcodec.cpp:(.text+0x1bd2): undefined reference to `QJisCodec::QJisCodec()'
qtextcodec.cpp:(.text+0x1bee): undefined reference to `vtable for QEucKrCodec'
qtextcodec.cpp:(.text+0x1c02): undefined reference to `QGbkCodec::QGbkCodec()'
qtextcodec.cpp:(.text+0x1c1e): undefined reference to `vtable for QBig5Codec'
qtextcodec.cpp:(.text+0x1c3a): undefined reference to `vtable for QArabicCodec'
qtextcodec.cpp:(.text+0x1c56): undefined reference to `vtable for QHebrewCodec'
qtextcodec.cpp:(.text+0x1c72): undefined reference to `vtable for QTsciiCo
collect2: ld returned 1 exit status
make[1]: *** [moc] Error 1
make[1]: Leaving directory `/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/src/moc'
make: *** [src-moc] Error 2

请问怎么解决啊
级别: 新手上路
UID: 24486
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2010-07-08
最后登录: 2011-05-18
2楼  发表于: 2010-07-25 14:34
引用第30楼松杉梢林于2010-07-20 15:37发表的  :
回答29楼,这个问题我已经解决。把src-mt.mk 里后3项全都注释掉。就能过去。不过我只是编译过去了x86,arm过不去,等待高人解答...

咋个就没人呢,难道问题太弱了?
级别: 新手上路
UID: 24486
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2010-07-08
最后登录: 2011-05-18
3楼  发表于: 2010-07-25 15:55
引用第29楼reeky于2010-07-09 12:05发表的  :
每一步都按贴子写的,最后 在qt2/目录下执行make src-mt,出现下面的错误:
[root@Fedora qt2]# make src-mt
cd src/moc; make
make[1]: Entering directory `/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/src/moc'
g++  -c -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_BUILDING_MOC -I../../include -I../tools -I. -o mocgen.o mocgen.cpp
.......

已解决:将qt2/src/tools/qtextcodec.cpp改成下面的(虽然很简单,可能就是这样大家知道也不说,想了下,贴出来最好了)
#define QT_NO_EUCJPCODEC
2149 #ifndef QT_NO_EUCJPCODEC
2150     (void)new QEucJpCodec;
2151 #endif
2152 #define QT_NO_SJISCODEC
2153 #ifndef QT_NO_SJISCODEC
2154     (void)new QSjisCodec;
2155 #endif
2156 #define QT_NO_JISCODEC
2157 #ifndef QT_NO_JISCODEC
2158     (void)new QJisCodec;
2159 #endif
2160 #define QT_NO_EUCKRCODEC
2161 #ifndef QT_NO_EUCKRCODEC
2162     (void)new QEucKrCodec;
2163 #endif
2164 #define QT_NO_GBKCODEC
2165 #ifndef QT_NO_GBKCODEC
2166     (void)new QGbkCodec;
2167 #endif
2168 #define QT_NO_BIG5CODEC
2169 #ifndef QT_NO_BIG5CODEC
2170     (void)new QBig5Codec;
2171 #endif
2172 #define QT_NO_RTLCODEC
2173 #ifndef QT_NO_RTLCODEC
2174     (void)new QArabicCodec;
2175     (void)new QHebrewCodec;
2176 #endif
2177 #define QT_NO_TSCIICODEC
2178 #ifndef QT_NO_TSCIICODEC
2179     (void)new QTsciiCodec;
2180 #endif
细细想来这是很直接的一个问题,折腾这么久,还是因为太害怕错误了,害怕得让人完全失去了分析问题的勇气。