|
|
我对syslink进行交叉编译到arm,但是出现如下错误:; [ I9 c6 V1 M7 M: N# s# }8 B
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter', H* b& Q6 `1 e+ |
7 w0 w f( J2 h- p这个头文件内容如下:: _# a8 o$ V6 H) B
#ifndef QTCONCURRENT_RUNBASE_H+ A/ j# g8 k& H$ w9 o8 O; E
#define QTCONCURRENT_RUNBASE_H: K7 y& A5 o# ~/ v
& O+ @ K. }4 q1 n8 c#include <QtCore/qglobal.h># Y! Q: v5 U$ z0 B( _! x( l) e
- S, u/ m6 v5 T5 X4 h4 l5 g#ifndef QT_NO_CONCURRENT
# L8 r ] y9 S! z* w" V0 i+ ~; h" F g3 F6 z0 t* n+ J1 k
#include <QtCore/qfuture.h>8 q/ s9 P) P4 u( \( |) d- H H% `
#include <QtCore/qrunnable.h>
1 p1 u7 o# h' P) i7 ]9 {% @' z+ w#include <QtCore/qthreadpool.h>" E! p% R* f! v8 h6 g1 {
9 {/ v5 r! [( Y' H8 `8 h- q
QT_BEGIN_HEADER
( _0 K1 I5 m$ I7 LQT_BEGIN_NAMESPACE
1 X: h! z. T5 W, E" l- s9 J' V+ K( U3 w. ~) I
QT_MODULE(Core) H* D+ @! R3 a2 X) u" k. ~. z, e6 e
8 J# Q% M+ w; t( U9 ~% [#ifndef qdoc
$ ^) w3 O* u1 H, H& W. {% v9 D( B/ r
namespace QtConcurrent {
, U* O2 e7 U! c$ V2 J, @
7 r! U3 b% k0 _/ btemplate <typename T>
( v9 ~+ }, `- m$ _. L) L0 Bstruct SelectSpecialization
0 P% f6 @) c4 a; |& C{
9 ]6 }" C/ q9 f- g( x template <class Normal, class Void>
% T5 z( K9 T; A struct Type { typedef Normal type; };
' s& f$ Y3 Q) }. t8 h. c};
7 @+ ^( @1 [- }/ s3 K1 h$ d
3 H4 `7 L) a& b# Stemplate <>+ F; }- a+ n6 C" |
struct SelectSpecialization<void>
0 h* K+ c5 e* w& @{( Z- O, e$ w T/ ~8 q
template <class Normal, class Void>
0 ]. f. R& h: ~! ?" ] struct Type { typedef Void type; };9 P/ R8 s1 M/ U: q( _/ T9 T
};
: h8 C2 g9 c0 W/ y, D/ m1 G+ t$ R( h9 P, G+ L* ~
template <typename T>& {* o5 _" C% N$ ]
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
) x1 q$ {% G' u- H{* h* Z9 m1 B( _
public: B! c2 w! z) S1 U
QFuture<T> start()3 I9 E2 [' h8 d. @4 w! `3 E
{
4 T3 A5 B! o, |: x this->setRunnable(this);, p9 N3 x* b2 x4 z- q
this->reportStarted();7 T) g) E. ]7 E5 a0 [' M+ ?
QFuture<T> future = this->future();
) R/ h+ S# A( W( |8 K, P QThreadPool::globalInstance()->start(this, /*m_priority*/ 0); {: h7 o# J6 g. i
return future;
! E& ]8 z' l: r+ L/ S3 U2 n }
3 }( a% ? e( e/ B! c/ K7 P6 j$ g
- I: V m) p4 R: }% j5 a k% q void run() {}
$ X- ^) u0 R8 _' x# ?5 G virtual void runFunctor() = 0;9 O* \6 c. Y+ w8 D( g# P
};' D: B V0 Y0 \! ]+ [5 p i
* Z5 q9 I' w5 O" Y( g
template <typename T>
4 {4 y4 _" ^& c; k5 z3 Jclass RunFunctionTask : public RunFunctionTaskBase<T>: U) I( S" K) b" r- Y4 c
{
, F* j" F: L. U, A# z" L& c# wpublic:) N, s; t4 l9 x
void run()3 z/ I- b& e" u$ u; j
{
* g6 L- k% r/ U5 f% s% V+ Z, x% T) y if (this->isCanceled()) {
8 g" A) F2 j6 b; @ this->reportFinished();
) G" I4 y: V4 P- u% U3 _ return; K% j2 a2 m; [ ~
}" f& a1 Z) I$ R
this->runFunctor();
! Q7 L) s* ?1 Q5 k5 ^ this->reportResult(result);
3 l, F$ w8 D4 G. y. t5 Q3 }$ Q2 @4 i this->reportFinished();
$ D( U6 k F, T& }( H5 h, h: ~" @2 p }! P% H5 O2 R% J4 Y" N
T result;
- I" Q7 Y5 d* B2 f# D; d5 ^ k};
1 x, d0 Z5 Y3 I8 z
s! n* L0 y: ?& r$ Z3 |template <>
/ o* h9 w3 }* Tclass RunFunctionTask<void> : public RunFunctionTaskBase<void>9 W9 d, v$ g& o1 ]
{
3 G4 w( o/ V, U) d& fpublic:
. ?' O, |' d x9 B: v1 f( l% n void run()
! |9 y0 c6 V: ], _; S3 o. w3 c {$ `1 n. t3 J; C9 _; [1 L7 ]( i
if (this->isCanceled()) {: M/ N3 T5 P! d3 v S
this->reportFinished();: b- I$ K# p& O/ e! V/ {
return;
& {) F; A: U2 Q& R: T7 C$ Z }# G" x# T5 W) w' a: K) q+ A
this->runFunctor();- f5 w0 a5 v( u+ W
this->reportFinished();0 u1 D; j( v" s" m) v
}
% {) ~1 T8 m, R: y% s" R+ Z# T4 d0 \2 |};
- u$ D4 B- i; {/ C6 ]% u; ?: Z3 ^9 O9 I5 L n
} //namespace QtConcurrent) a: O" v% i5 \6 A$ B( e' {
1 d' T2 p% N$ w Q( \: k
#endif //qdoc* c: @9 k% Q0 y! Q( Z T6 k
$ p6 W$ Q: U% k. f4 x6 X/ N7 |QT_END_NAMESPACE3 m5 E4 F: Q, C6 _" R0 z% ]
QT_END_HEADER
: v4 V! l: Y! S6 \- _. h5 ^
4 i/ ]2 g( p9 G* W. L8 s6 L5 B#endif // QT_NO_CONCURRENT
3 O; J5 v u( t1 H4 l1 [: N; d
: d M- y, y \- M) A#endif. v/ R7 s1 I3 x& z5 I6 D
1 C! I5 C ?/ ~ |
|