|
|
我对syslink进行交叉编译到arm,但是出现如下错误:) u' k( X4 s* X- c) u4 u
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'! p- \$ i" ?+ {! }) Q' b
' C( r. z% }$ S& A7 X这个头文件内容如下:
, X" `2 D9 m1 K3 G5 Q#ifndef QTCONCURRENT_RUNBASE_H4 j" G2 |" N6 Z3 F& S7 S
#define QTCONCURRENT_RUNBASE_H
% z' k( C V- g9 e( U4 D* K% y6 Q+ I2 D3 w9 W+ f
#include <QtCore/qglobal.h>* i: l* G; J# m
& N4 `* b' F+ c( N; K#ifndef QT_NO_CONCURRENT
; S% `1 d& m! j) B0 Z7 L
) O8 _6 f( a) f1 z#include <QtCore/qfuture.h>
6 K" V M% Z8 }9 R#include <QtCore/qrunnable.h>+ B6 x. X* x% Y1 G; F2 g+ W
#include <QtCore/qthreadpool.h>% Z5 U' T2 }5 _* `
g$ u+ T1 l1 Z3 h2 Z
QT_BEGIN_HEADER: n2 ?. y+ \+ v* Y
QT_BEGIN_NAMESPACE
6 G, `7 ]* M: N* c# x# P: T- d# p% X: j1 W+ u$ Y
QT_MODULE(Core)
, f& }+ N6 `; i0 d0 N7 Y
' H$ a0 J; o1 n Q#ifndef qdoc
1 C1 l& {7 H/ R2 [/ H: x& [, L
0 h$ g5 E* Q" Q! }" _: e4 cnamespace QtConcurrent {
0 k) r ]7 S3 ]) t0 m8 S7 d
' o5 E0 X; o$ }: B& i9 i* Utemplate <typename T>
$ }( W: n2 T1 M$ E9 ~struct SelectSpecialization; ~8 |0 @; x6 A5 M
{
8 f: c0 S! k# v template <class Normal, class Void>
" l. ^- ~& T! @) {& i) U struct Type { typedef Normal type; };) j- z) z9 A- T* w$ b4 D5 @( R
};7 h9 g/ p$ t3 P n
+ j4 n, \0 w+ u3 L1 a# K c/ vtemplate <>0 A) s) \6 `( I+ S, |& i
struct SelectSpecialization<void>% Q0 \9 X" g5 Q
{0 a3 }! Y6 n: y) k2 N
template <class Normal, class Void># v/ b" a, V- c7 o5 W- l- E9 X
struct Type { typedef Void type; };
9 X. F9 H1 {2 P& a5 w};+ A0 H2 T# P. q, \- N" g7 \$ e* G
7 i+ `4 v3 J7 q; Z; {3 X% d3 Itemplate <typename T>
, i z: N+ f* N; J Wclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
0 y) p( q2 l2 F- u4 d{- w7 M7 V& V$ @' b
public:$ Z4 C7 ^ k4 {( m' I) J8 S! u/ P# |
QFuture<T> start()3 n% ^& }$ V1 Q
{$ U4 U k6 c8 g' |- T
this->setRunnable(this);
& e) @3 ?! J5 H! e this->reportStarted();& Q5 a; a+ M3 ?+ W
QFuture<T> future = this->future();& `' Y& O' Q1 e7 D7 R
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);- v5 a" {: a: X: s7 x
return future;3 k( f8 O J' ~' v- `
}" ~5 w2 w; q. @! m+ z' J! i; A" B
7 z$ X, b3 _6 ?9 |: d$ l- A
void run() {}9 W1 w5 d3 m5 v2 }5 M @
virtual void runFunctor() = 0;7 p3 c6 K$ l" B# w0 m' L* k: I
};6 r w% `$ f. L' m$ d
9 J! M3 y" j: P. w' X; m9 M3 U3 p2 |
template <typename T>$ r$ u" Y0 o6 u6 K
class RunFunctionTask : public RunFunctionTaskBase<T>( N2 s% a, p& v$ ]
{$ @) c" Y$ M/ T* s' ~4 z: M
public:
. P2 d- ^# C5 C4 a) q9 w4 d5 z void run()1 S3 T1 V1 Q. F9 ?5 w
{9 X; p% f% h% a4 l0 G$ g% A7 q
if (this->isCanceled()) {9 M; b s$ T6 k& d- n0 O
this->reportFinished();
+ \2 V F/ ~2 s! A2 ~ return;
; q6 j6 N d/ d6 X1 d0 k9 | }/ W' M* d0 h; J# N3 ?- O* T
this->runFunctor();
2 `+ v M' ^! e6 n! g5 d this->reportResult(result);" A. O; E2 K2 L9 K
this->reportFinished();
7 ?3 S8 x# f. d& O7 E- j& W }
6 t+ j$ |* V3 o$ |4 ~" U+ @" u0 l! z T result;- q, k( Q% v, F( _- Z7 u
};
- m# E2 p( P: ~ ?% r
- @$ S9 [# O! v* t2 E( p. Ytemplate <>
5 R! x! p. ^" d+ V( ] o7 M2 rclass RunFunctionTask<void> : public RunFunctionTaskBase<void>0 |# y+ n( {% T6 @6 |2 a1 i$ h6 g( S
{' b p2 ?) w1 p$ W1 i( E
public:
* d7 N) E2 `, ?- x! a void run()
2 s$ _" [6 j+ y7 s; K. v2 q" \ {
+ J3 }7 I, R+ s( z' w if (this->isCanceled()) {
0 T* h# y7 x! Z2 R this->reportFinished();+ \0 B- w M1 r" |0 X: o* w* X- y
return;
$ u+ p8 O3 g0 _: J. { }
9 e- R' J2 v/ ?% w6 D% L' N this->runFunctor();$ P) k/ D( a& p& ]) M2 n
this->reportFinished();
$ \2 W& @3 L# A# U7 m- c }
6 f) u* t7 l* ?& d2 M6 t};8 u3 C! ~. @$ e. e$ W
, P/ H$ l9 x, J+ m6 W" L
} //namespace QtConcurrent1 [5 f6 F* ]( @% E8 _
e8 C+ Y# G) q% @8 G3 L) b0 T$ y
#endif //qdoc( F' ^( }3 n7 X& t, G
1 H/ o3 _7 n5 J D* j8 j0 j
QT_END_NAMESPACE6 f+ X$ F; Y2 D" i
QT_END_HEADER, r- c! `( E0 i: R9 D9 T
3 {6 \9 _; N) f Y! ]! q, \ [#endif // QT_NO_CONCURRENT
) V/ i/ x3 B6 K3 {" h# U9 n- i1 C2 o( Y8 R! A
#endif0 s6 ]" N7 L( X+ ~7 p8 y
% M5 Q K. |$ N! s A3 w
|
|