|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
+ h+ B; `* q `9 |2 g/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'/ @' @ k$ W# x2 }+ V6 \& Y5 |
1 m' g3 e) [7 h
这个头文件内容如下:
9 a) e! Y- D+ c/ B0 H& b4 K) {#ifndef QTCONCURRENT_RUNBASE_H
0 J8 f+ d) D5 y4 y( |! ]#define QTCONCURRENT_RUNBASE_H
~; K1 |2 m. h6 x8 ]3 x) O
. r1 M: A2 Q, N- f6 A& o# L#include <QtCore/qglobal.h>
" [$ E1 Y$ Y) u1 E7 w% j1 q) s$ ~ q4 P
#ifndef QT_NO_CONCURRENT. R& L; s# J8 C& l- P5 m) U9 i* h
% d# R& U! @( M" {
#include <QtCore/qfuture.h>
( f5 Z# ?8 O0 L2 V/ Z9 ^0 M#include <QtCore/qrunnable.h>
# N; U7 j5 l7 q( A#include <QtCore/qthreadpool.h>% r; ]) G$ F9 ]
6 {) x, }- D- AQT_BEGIN_HEADER; _0 ~ k+ o" l
QT_BEGIN_NAMESPACE* b! ]6 x1 A. q- f3 ]4 S: G4 }2 `
$ n2 `9 h6 R# e. MQT_MODULE(Core)
' l. D8 F* U. M" [) _$ t; p2 c- w7 O
/ s7 f, V: ~2 w: d0 O. m4 C#ifndef qdoc
4 W* C! e! V# J/ D% I0 m3 V. V5 H
7 v; F% ^0 i$ Hnamespace QtConcurrent {
. b9 U6 y" t" p% N- {! E$ }6 o
: p% |: i7 `5 ~4 v3 |$ o4 f5 T0 }' Atemplate <typename T>" c: Z! c% S0 \9 }
struct SelectSpecialization; C) d3 I1 b9 M
{
% h% Z5 R& Q- t template <class Normal, class Void>9 e% X4 d8 w1 i
struct Type { typedef Normal type; };, o& V/ x/ i; {3 G0 h4 X& A: a
};
$ p; J# U2 I9 M& u/ p
, ?) S2 w9 I8 `template <>+ y# Y( c1 y2 {( O
struct SelectSpecialization<void>
2 i( X0 p" |# W9 E) C) M' b7 j* M{
6 E; ]2 X/ z% c1 u2 A3 [( [! t template <class Normal, class Void>8 A) S! U- D; A5 ]% S- Y) `5 G7 w
struct Type { typedef Void type; };' u) Q% @% G8 L; J
};7 [( x( ` E. {$ x/ j9 G. h) U
8 T2 D& @. o, O1 S! }template <typename T>
" C4 e \2 s3 O) Qclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable, @! u' t. {( A# l
{+ L- v( C" Z7 H$ g' L/ ^4 @7 |
public:, z6 e! ]% l4 j- N: L' v
QFuture<T> start()
/ g o! |, p, @, Q) Z" J& { {
( N$ N) J+ o- p/ q K( I. I5 w this->setRunnable(this);. T6 |( ^0 g5 |6 v$ L: N
this->reportStarted();3 [0 Q, b2 l. [% G3 L7 P. H2 v
QFuture<T> future = this->future();8 Y: C% M( T* D
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; H# K4 D7 `4 b, j return future;
! k$ z* x- C' F8 y2 [9 F2 v }
4 J# k3 P0 ~9 |! @ U; E
7 |4 g* w6 i( w! e0 F. t void run() {}; S% r$ h3 e4 j
virtual void runFunctor() = 0;
0 A. K0 F1 p/ g1 T l};
$ F5 z* h2 s5 I4 e J' m+ ]- {6 o0 z, |$ a' [
template <typename T>/ a! o3 \6 b2 G) ] w" } B
class RunFunctionTask : public RunFunctionTaskBase<T>
C0 S7 n4 v% K: j4 _: H{
1 J. j0 `6 r2 `public:
5 J2 o" Y. V6 [ void run()- v2 m7 k5 M/ N) O. N1 D/ \
{' `4 m' M) H7 k4 ]# J% l# j
if (this->isCanceled()) { M! i' d+ H/ W
this->reportFinished();! S" m5 O3 g5 g& i8 F
return;
4 ]! s/ d( f4 p }7 o1 {4 E, }/ N5 e2 O" N; t
this->runFunctor();: v* S; b0 P4 J, @
this->reportResult(result);
; W9 o( {8 b2 O; k8 T' ]/ s this->reportFinished();% q& v4 v1 T9 }' Z5 B2 w/ e
}, V* t0 x% b$ B4 U( k
T result; E7 j; D6 _- K; o1 x- Z% l
};" |$ u2 x0 d9 j1 y
. g. W( ]% [4 m p; L# H0 g
template <>' M ?+ p, @( n6 s9 X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>! `2 j3 Y9 p' O5 M
{
! E2 ^' E& o4 r$ }2 Cpublic:
7 N u/ @( a! E! H, ?$ Z void run()& k) i! z: h0 s+ s9 C4 s
{0 x# I6 P/ R+ V' l y) B8 G4 W
if (this->isCanceled()) {, u1 l9 Q1 N) L
this->reportFinished();
- x, ]3 ^* h6 b" G4 v+ v return;
3 R$ H$ }: c* i. q5 T: j1 N }
" |0 t- n* O( L8 x8 } this->runFunctor();; f: r8 t. A$ K" ]
this->reportFinished();3 q$ C D8 n: {( R
}
" C) E: C. x0 n3 {9 O};5 ?1 Z8 S6 p! w' t6 z
4 o4 N) M6 l; s% g) c5 f
} //namespace QtConcurrent
; y+ F4 S9 C' H( r$ t
6 Q! U' `! ?) U; k9 C7 s#endif //qdoc
1 m# e9 @4 |" l |9 ~" o0 d4 e) u) v" F
QT_END_NAMESPACE! x+ U6 d6 R% D, X8 O! E) B; b5 d! M
QT_END_HEADER" O3 e- x$ a/ q9 A: G, f. @6 @& h
/ Y0 {3 @9 \6 y" R, o#endif // QT_NO_CONCURRENT$ V6 I. ^; ^, o2 I9 s1 t
) R0 h K2 v! l) J#endif
2 @3 M. _1 \+ H3 k, I: g; {2 c z: T( y7 ]2 D) w- R
|
|