|
|
我对syslink进行交叉编译到arm,但是出现如下错误:* {2 W3 E& A% Z- N
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
/ z1 d- S0 N; P8 F1 H& B
Q, x N+ m7 K& t' V2 K% P这个头文件内容如下:6 ^4 B5 @/ e. w; [# s6 [& @
#ifndef QTCONCURRENT_RUNBASE_H" Y& ^% k% L# t6 W! a p. }
#define QTCONCURRENT_RUNBASE_H! b/ U/ q6 |% ~/ E1 G( _, a/ I, O
, V2 v f0 F$ N! y
#include <QtCore/qglobal.h>; _& v- U* n; V; w7 o
, b9 ^4 M9 ]5 B0 r$ F
#ifndef QT_NO_CONCURRENT
* l v' P7 t0 _/ ?6 u% c2 F1 Z! e" C
#include <QtCore/qfuture.h>
8 V: U- m5 {0 B' H# L#include <QtCore/qrunnable.h>
- B- O @9 R+ M$ t9 P6 [% q' }% A#include <QtCore/qthreadpool.h>" J% I% U. l( i$ x
9 d& y& [2 h3 T1 x# A& G
QT_BEGIN_HEADER4 p3 |2 C0 g6 B" l, l6 E
QT_BEGIN_NAMESPACE
" T* a: E9 N9 R, p: z* ]& d3 N7 x8 b# ~1 ~9 p' a4 y+ q4 |
QT_MODULE(Core): k1 h* a6 F! d: i8 |2 G
% K; U1 T, Y) \, w4 l' x( [, `#ifndef qdoc1 r. T4 D. W1 y/ i& B9 b3 v
2 V6 A, |. N! i" Qnamespace QtConcurrent {5 J" s! p2 W( _9 d. a) k% e: x
/ d/ K' v! }' p
template <typename T>
% v ^5 l3 c- E9 S0 ?: m& Ostruct SelectSpecialization. f5 ^( @; y6 y Q6 a
{) g, B; q( m9 d3 ~. a2 v3 V
template <class Normal, class Void>
4 m; @/ ^5 ^3 K+ n struct Type { typedef Normal type; };
" Z7 J* W" C- a8 D6 A};
0 z( o; K; G$ |" @( X& l1 n1 H/ p: l0 \; l" `
template <>! Y! D. N% E. J, J; h# V: I1 L
struct SelectSpecialization<void>
+ O; W! N8 n! D& `& H2 x{
0 z1 d2 |/ J T J$ j template <class Normal, class Void>& `" A( g4 T* c+ w$ p8 `
struct Type { typedef Void type; };
" J( N+ @/ F, R6 \0 |$ i# I* Q};+ g: X2 y& Y! I0 x6 G/ M
$ n8 ^+ g& Y' U/ d; g$ ~
template <typename T>
+ \/ K3 X, d, d. ~! M$ H4 Oclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable% T8 J6 W1 C4 r% S# M# y `
{% n: q' Q6 g7 W5 D9 L- O
public:* M& k1 r1 `8 D: c
QFuture<T> start()7 k4 n O( u* D3 o9 z
{) h! n$ k ?- A. k4 n" g, ]* b
this->setRunnable(this);
0 c7 P5 u, k+ B/ m* Z; p; \ this->reportStarted();5 @! u/ Q9 \- {0 K: ?2 z' o1 C
QFuture<T> future = this->future();
/ y: d# O# O% H& v; q8 V( _/ |3 P QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
% T9 B( f& U4 l. Q5 v1 I6 @% y return future;
& x; A% B1 m0 H, P+ b }
, Q1 O3 D3 y7 E, o' | L3 {
* ~. z' @- b. Z4 {( j& l void run() {}
- k$ u' N/ L1 F1 c0 S virtual void runFunctor() = 0;# S. z1 ]( U/ |# y4 @
};
$ m' Q9 w. ~1 a! k8 O% Z7 u2 L8 n) }8 p
" C; b+ c+ v$ O, c Xtemplate <typename T>
2 G1 f, f' P; Y8 J4 gclass RunFunctionTask : public RunFunctionTaskBase<T>! t/ I( J8 k# S0 G x
{" D. O. N+ ~! \4 u' q+ K3 I
public:
! e6 h) D* q$ I# V$ }( p+ d void run()
8 \1 s) M: _8 h! y/ N3 x2 o3 \" x6 L {1 V9 D% H( ?; C' B' X
if (this->isCanceled()) {
+ G v+ [3 `/ C7 o this->reportFinished();
& R# U0 e+ {8 q( l7 }3 h return; e3 `. |& s" s7 A/ _3 i! ~
}
9 M0 S) Z; S d! \1 Q7 Y) _ this->runFunctor();$ z0 B, v0 v" v" D' d4 ^
this->reportResult(result);: |6 l- j$ M8 W0 G# H( h
this->reportFinished();2 h1 B- X+ S1 i U) `
}
7 c/ O9 A* M9 h4 Z- S T result;# \7 B- ?1 q; M* G2 Y( X
};
% ~" N9 R- A& k- f8 A5 k( i/ A+ s
! x3 p: d3 c9 I, e. I5 u' \template <>" T7 ^1 A% `6 m6 x
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
" P' @% L# ~6 X- H V. k( d, V8 J{
8 z) W2 Z1 H; C* D1 ^- Gpublic:) m+ M6 Z, u5 \! s d- u% c! q
void run()& R3 Q3 E8 c! p$ L3 \
{% L( w5 L+ g; m. X& p: Y! s. B$ L
if (this->isCanceled()) {
" [1 y/ ]/ w V- B2 T/ T) l- u5 C this->reportFinished();
3 @; B' I! k2 {9 J! a* Y6 s return;
: j. U2 h, A; Q/ n$ [ }
6 c& r5 Q: n3 C h8 _0 m this->runFunctor();
- G$ N, E6 i+ r* w& m% l this->reportFinished();
6 Y) R u! e; O }% j O8 r t$ i7 c
};
5 W1 u: N& Z( ^% k8 g) @8 ]2 d6 r& G& [
} //namespace QtConcurrent1 y! h) Q7 v5 e Z* j& z& u7 W
4 l) v* |" y! }8 O4 J1 V0 p
#endif //qdoc F4 r% D. ^. j* u8 G
0 ~ p5 H* Q" V% N0 w/ F
QT_END_NAMESPACE
! } Y9 ?1 C8 h8 m; `QT_END_HEADER
* x* ], S' h& [- h
g; A; ~' Q/ p$ T#endif // QT_NO_CONCURRENT# o, C D9 w6 S: C2 a
2 A# C& v# {6 z* V5 O |' [
#endif* h; I( g0 P7 t, \( V6 ]
8 z% A" s q+ R- ?7 D% X+ H |
|