|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: [; V; _0 O7 ?( K: o+ i/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
; S! C$ X8 P( P( h- O. f5 }* I+ H* d) C) _- \
这个头文件内容如下:2 Q' t5 C- |2 W% f$ j- e" O: `9 P
#ifndef QTCONCURRENT_RUNBASE_H
# g' r: U) |+ t7 \2 w: V#define QTCONCURRENT_RUNBASE_H
$ E; C% j, N$ L0 a$ ^0 t# ]5 X% _- C* ]. i; W k( k: T7 d7 J
#include <QtCore/qglobal.h>
1 B4 t S; @0 U9 ~; `; i- j9 m. i3 B: w Z8 N7 i
#ifndef QT_NO_CONCURRENT! B; W& C3 ~0 k! X! n
- I/ B3 \* D1 Q% Q
#include <QtCore/qfuture.h>1 d$ O* L" }6 \; j8 c
#include <QtCore/qrunnable.h>$ q `8 M; }5 L; G% F
#include <QtCore/qthreadpool.h> `# |! S9 Z$ T( A
4 e4 G4 J" y; g. j2 }" fQT_BEGIN_HEADER& v9 r3 u- O) U
QT_BEGIN_NAMESPACE
$ I8 c9 v7 D( |9 t
, s6 s' H0 o) ?. k8 TQT_MODULE(Core)
2 A% u {6 }0 W5 g0 J+ f, v) Y( H1 |4 m( R6 Q. P
#ifndef qdoc
8 t; f' d: @* ^) l! e( k4 ` b+ R3 s1 h" C1 F$ ?5 t' Q1 L8 W
namespace QtConcurrent {
3 ^$ T" }" u z) U- L; O3 r+ m& d, g
' Q* w3 n$ W. L. i$ Itemplate <typename T>
6 @! V; o3 u: M+ v$ E0 K" N" hstruct SelectSpecialization# D3 v# h% i; _5 X8 R' q7 \- G
{
% R+ t T$ s/ |" _; D template <class Normal, class Void>% m7 i6 ^" x. {" F5 \/ O
struct Type { typedef Normal type; };0 J# W9 K3 a- E+ A$ ]7 f) I
};7 s! e: k. U: v5 I$ G) n X9 u
- Y9 y' ^0 r' g1 X @
template <>! t# ?8 J0 D* p& ^" \. p! w6 X0 I
struct SelectSpecialization<void>
; @ a4 B: P- m) u{) r( I: ]& j* m# _9 H9 n
template <class Normal, class Void>8 W! n" w; e5 C8 n5 B* U) b
struct Type { typedef Void type; };
# D* ~6 c7 t; l; P3 N};
0 t- p) n2 T1 s/ O
c! h" Q! B8 s4 k- C4 h( Ltemplate <typename T>2 H: [2 M4 I) H* ^
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
# s5 X5 Y' F2 O7 i& S9 u2 b, k7 N8 `& a{" |8 ?: K6 m9 b% U; e
public:
! }' u# \9 G9 L* L5 j' F/ x QFuture<T> start()4 G8 v% P* c! T0 G: ~, _+ Y
{8 w! Q* @3 i6 e. d! ] D
this->setRunnable(this);: x; a; @1 e/ c/ I1 r/ W/ G
this->reportStarted();
; h$ }5 L- }) ]4 K' S* m QFuture<T> future = this->future(); ]* r4 d S! G4 {! N) e
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
8 [2 s" i. ^* { ]6 G return future;0 y) b2 Z- F: F
}+ F% m& }: l7 X6 ?6 s
4 z' p2 P7 R- d% H7 E void run() {}
# P/ v& X4 y9 W5 R s; N3 N virtual void runFunctor() = 0;- l# u3 T: K& f: R% g! Z6 k' t
};7 B& l" c% L1 O3 w: Z
V' L/ W6 B# {7 L R* e# k
template <typename T>7 l4 ?4 ^+ U, l8 a2 \8 V2 H6 L) Z. Y `
class RunFunctionTask : public RunFunctionTaskBase<T>- l8 D* s: j( s7 [4 I
{
1 w; D$ P' b; T" v: d' d) npublic:
/ s, P6 _ m+ e" U; Q void run()
4 Z7 n* E. k) S3 Y2 w& U; S {
1 [ I# I7 m x if (this->isCanceled()) {( D. Q( R, D4 Q/ g8 A
this->reportFinished();
- D/ [# H) G, C: H% d! N9 o return;+ X6 ?2 U% i2 t' ^( {: K3 G: s
}' H2 c% G' R4 x6 l2 H' @ N" m
this->runFunctor();6 g$ r9 m: d3 A& ]' I! c
this->reportResult(result);" U( F* |: k1 v2 ~ N
this->reportFinished();; B" h& s, X! j
}- b7 x4 }8 A, `% D
T result;
; k2 g5 [& Y# l& j. H};/ V; l. T$ ?* X; [& J' e8 A
# |; O5 ~- |: U/ gtemplate <>
& R. V J1 \9 M: o# H$ B' ~/ Nclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 p% B$ b, x% K" T; D+ f{
6 y2 M( z6 q/ q5 qpublic:2 ]% j) d" K" S$ M& c6 A
void run()8 X' t# w: W/ H( i5 e
{
0 M' f) x. u% k; L if (this->isCanceled()) {
( P) g" b8 x8 K! O& [% w$ Z this->reportFinished();& \) O2 z2 Y8 {) |5 W1 _0 d: {
return;/ ^/ Z/ u# M; y+ y( G
}
$ H; A+ x" m6 s( ~, W this->runFunctor();
5 U1 |3 [" J& r8 s this->reportFinished();0 Y5 }1 A' J# k5 n" l
}
. M; e* K/ F# Q+ P};
s& `$ H$ A* E0 i+ o2 `, ?7 _
. C- b) G4 f& L/ S: ~7 o} //namespace QtConcurrent
J5 u) z M O8 `8 T- J- J$ t; D( d
#endif //qdoc
# S. `7 n3 i" C3 q, d; g7 ?8 q0 q
QT_END_NAMESPACE+ X5 v! C& a7 P" [# h; p! p
QT_END_HEADER5 z9 Q: b' M- \6 j- W
* i7 o3 ]- ^- ]
#endif // QT_NO_CONCURRENT
4 r& ~2 I I. p
0 J' K: }2 ~1 ]& D! H( p#endif
! d4 M: {2 f! D [$ i* j9 K: U# e0 O! h! U5 M9 u
|
|