|
|
我对syslink进行交叉编译到arm,但是出现如下错误:: n9 u- o9 L9 I5 Z
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter', n6 ^( k# Z8 I# K* f8 i% B5 a
% g5 N+ F! g3 ?
这个头文件内容如下:5 |! p$ x9 k p, Q
#ifndef QTCONCURRENT_RUNBASE_H4 r* e6 W3 Q* q
#define QTCONCURRENT_RUNBASE_H
, G. L( b3 p/ J9 a& O3 b: I. v. @7 J. `% z# p$ q
#include <QtCore/qglobal.h>
3 X4 ~% R p( F: k9 y
; N5 N) i1 w& t. B#ifndef QT_NO_CONCURRENT+ B! J7 P% c& v
$ P5 H5 U: q" Z& ]; l+ `/ w7 |
#include <QtCore/qfuture.h>
+ K; @" _8 X6 S# N6 O: B#include <QtCore/qrunnable.h>) x) Z& g" f ]
#include <QtCore/qthreadpool.h>7 z+ Q5 r! m7 v4 J6 D; ]. ~
' c0 x) @+ r' {( SQT_BEGIN_HEADER
1 W' }8 W, d$ k8 iQT_BEGIN_NAMESPACE! S/ n% {9 i; p
7 f" [4 P# a8 v$ A6 H) [ H9 CQT_MODULE(Core): `* W9 Z( a3 H7 M Z* @
1 ^$ n# f. q5 q! x3 A# \#ifndef qdoc
8 x) ~/ [9 `) H% F2 b
# s+ |% b; Z% ?( v) p7 d6 e! Inamespace QtConcurrent {
' Y$ Q2 {7 s5 r
) H8 B0 l1 _. y3 e) ltemplate <typename T>8 U5 k6 ^8 j+ |" L3 _! k
struct SelectSpecialization6 W2 D2 d/ k9 O' O5 ?* C. N# M) d
{
5 {7 C$ ?: Y, Y" E# E2 O template <class Normal, class Void>+ ]/ H) p! C5 e5 N: f8 w: u
struct Type { typedef Normal type; };( g7 B' o3 @6 M7 {
};
2 H' p& I: E4 q# K* j. [3 _6 H5 ], D$ ]6 q
template <>
' Y! a# x* J$ kstruct SelectSpecialization<void>/ N1 L. i" U2 u' l4 _
{
" d- @6 @4 j/ p% l. n- y& D' H template <class Normal, class Void>
, |; V% l3 n$ T2 M/ I( o8 s struct Type { typedef Void type; };- h% _, j- T7 j8 p; G" ~" K; h
};
9 Q' z& `1 a/ P! o5 n# f' C
9 Q/ e& L) ]# A: Atemplate <typename T>
; z$ q; l& S% J% |' p0 xclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable# s! R$ ]" z+ J. v8 `
{
$ N7 a4 q/ W; z. I1 C; l) a7 \public:
# N$ p2 h' j f- M, u1 s' A6 w9 ^ QFuture<T> start()0 g! J' q" g2 y7 @8 Z0 B) D0 z' ~- }5 x1 d
{& G7 `2 Q/ C# x5 D) ?
this->setRunnable(this);- q* \% h& s d( W
this->reportStarted();" V% `, a, \% q
QFuture<T> future = this->future();
. `+ q" A# ]* {% H QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
" c, d k' e, M return future;
. \. C% x4 {& K8 j# u, S) G }
) ~# |; G% u9 o2 U3 R5 ]3 M }$ V% m# {$ B
void run() {}9 [* _( \: l; _3 H
virtual void runFunctor() = 0;
# D) c) R, Z, O" B};* a/ V6 O- L* t# l4 V
$ d4 ^3 ?; A6 V' J( Atemplate <typename T>2 R( t1 m4 e% J) i. c+ K2 [
class RunFunctionTask : public RunFunctionTaskBase<T>
. U* W/ Z! O3 p" H: e0 F7 W{
* U8 @+ o5 t% ^& T* H) Bpublic:& U9 A+ c5 [9 h8 y( B8 }
void run()
4 [$ l9 x/ ^, L8 u' ^ {& t1 l# Q, x1 s/ }$ [3 W, G9 Z! @
if (this->isCanceled()) {
! o: \7 {5 r. C. \ d this->reportFinished();, | T( V5 P* d g; ]/ m
return;: U1 ?: S7 E% d3 d/ [( D8 }0 _. u
}
( y; q4 e% |5 l- M this->runFunctor();
0 @/ M0 f, D( r g5 M2 A this->reportResult(result);
2 Z8 T/ r. k7 Y1 R6 ^8 e this->reportFinished();
- q/ R( L5 V+ Y }3 O1 z( C: l+ s" |/ E6 o& }- \
T result;' ^+ l1 m! I5 Q, P& g1 b$ Z
};
( f. d/ @" T8 w2 @* [- H( I0 A) i( q6 a2 Z- C
template <>4 j! y7 i6 D; V' B$ G! ?. b7 \+ u
class RunFunctionTask<void> : public RunFunctionTaskBase<void> ^8 O3 S B) c0 h+ s- K
{
; G; f/ c' U! Vpublic:
/ F+ |, T! s Y' s1 r; @1 E, ` void run()! \+ M3 e# S. u5 u7 |
{
( U5 k: F/ x9 H+ Y if (this->isCanceled()) {
1 r7 |9 z* [( x! \4 D this->reportFinished(); N1 k2 c3 X7 ^- D0 G5 y
return;2 g* w! L2 }6 K$ T
}
; w. h) m# x4 V" i. e) a this->runFunctor();
6 G4 D6 o$ u% i3 M7 l7 J+ p this->reportFinished();0 v* t( e8 I' Z
}1 m) ^1 J) p/ `/ v
};
6 F, R. b- m" e( k* M8 [- t- G" ^$ \
} //namespace QtConcurrent9 Z% b: g0 w. w, b! L: j
8 s8 \ L4 t6 V1 ^: a+ B#endif //qdoc
6 f9 }7 m1 ~/ u2 q- N, g& h' }5 Q7 R* i, R: p8 e6 o
QT_END_NAMESPACE
# }# O+ U+ S; {- b$ gQT_END_HEADER) g8 W9 z- z6 W
5 O5 b) G6 Y7 f& p#endif // QT_NO_CONCURRENT; ]. w% J$ d. t, }3 m
$ o4 b* b7 U1 a( M4 R
#endif0 G) p# _$ \, `% s4 j
6 ~" L& W6 x$ j- l( W9 i- D6 y4 D% u
|
|