|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
" R& _. a8 R* {( _8 K/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'' ?, T! |2 L; L7 ]( H `4 F/ m# q
6 N& E% t+ o5 L3 D+ E
这个头文件内容如下:
+ ?3 t5 d# t. P6 d- s. D#ifndef QTCONCURRENT_RUNBASE_H
( w0 K r+ H% }; s8 w#define QTCONCURRENT_RUNBASE_H: l1 V9 k7 V- x+ ~
( R3 Q7 a9 d+ Q+ }! h0 _ ~#include <QtCore/qglobal.h>
6 \7 \/ }0 _7 c* Q1 d* f! B8 U! m8 q3 m" z0 f
#ifndef QT_NO_CONCURRENT
# e2 K5 {+ P$ O
$ R( _5 {- G7 b3 |8 ?#include <QtCore/qfuture.h>+ E& e, y* U6 U9 N% ], C" \: n
#include <QtCore/qrunnable.h> L, ~3 V! C6 L5 J
#include <QtCore/qthreadpool.h>
9 _8 I) c4 E7 B2 W. y, r1 a+ i) ?* F0 P2 Z7 _' B8 O) ]
QT_BEGIN_HEADER& h: c" n* ?/ r7 c. {- p
QT_BEGIN_NAMESPACE
, c' c, `: F3 H- ~+ ?7 K5 |: I3 w2 [3 @% V+ i
QT_MODULE(Core)6 O4 A6 h4 I% A7 g$ G; y3 J" v
4 r' @ Z0 M$ X
#ifndef qdoc
x( k" T5 ]* o3 j) B0 [8 A9 [8 A6 H7 D, x! {
namespace QtConcurrent {
& k+ i# [+ J/ M# j$ A
, G* w* C% \ |% f- j- s0 a) stemplate <typename T>
+ f0 {$ G7 `2 r: @4 e: b. ostruct SelectSpecialization0 G- q- \ [# W$ D/ ~
{
: i/ F* i3 s) @, f5 n6 Q% L template <class Normal, class Void>
+ g+ f# O: L8 m( p) V6 w struct Type { typedef Normal type; };
* S. c, X5 ^, k# |. z};2 S" L5 C) j% M! a6 Y8 r7 V
8 G) ^" X$ c8 m, Z; `& ltemplate <>$ i" x( j9 W% f- b- r7 T
struct SelectSpecialization<void>$ Q5 d6 M1 H) ]; }2 _) z
{
+ x3 g5 v4 G& N; |1 z5 T template <class Normal, class Void>
3 U# E f! E) G" X2 w; I; b2 u struct Type { typedef Void type; };2 I- l9 N; I* G4 S# n Q
};! w+ P# e& e2 w8 x) C5 o1 X1 d: S
0 C) y' H$ \6 ]* o4 U/ V* jtemplate <typename T>1 j8 i9 q* ~: [5 q" h" [7 K( q
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable k) B; C+ D9 l
{: t: j& N6 G1 W$ {% Y0 o* P" \: A
public:
3 Y' w/ \, ^& b" I QFuture<T> start()" A y: A( p7 N; W) e2 t T/ U5 ~
{( U! f( z& T: a) N
this->setRunnable(this);
! _! |0 L4 f5 Y this->reportStarted();
, i1 j$ P! \# r, \ QFuture<T> future = this->future();6 X" t" b f9 E. {8 H
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
" A- X* J0 {8 u/ m. q) s$ i; g6 Q5 z return future;5 J: A! q; M, e+ L7 B
}; n9 z1 v/ ?6 ]8 @3 @, U
! U/ `- X' x V void run() {}
7 o1 m$ l" K( M; C virtual void runFunctor() = 0;$ M s; t6 w# U- M/ h3 C. J
};6 m/ o2 ^: { r5 G' l
5 G, g C" ^' Y% \, e4 B' G
template <typename T>$ K1 k6 Y1 Y3 E' \
class RunFunctionTask : public RunFunctionTaskBase<T>, M/ B& w, a8 A. R" T4 n( h" S) u
{0 _1 Q8 @1 s- [+ ~4 }% w P
public:
$ [8 B0 L! f0 C& d" B void run()
% r2 d7 B' v9 t8 Z3 ^ {
; N6 V2 L% M) F* [4 l if (this->isCanceled()) {
7 A7 I4 }( d, i' p$ R8 `* T6 e this->reportFinished();2 r' q% B: X: o3 l5 {5 | |
return;" S. a4 ^) O+ V* _
}
0 R0 j0 \# r- |: R$ ^9 F- R this->runFunctor();
! c R3 s! A; n9 L: F! C! Y this->reportResult(result);
" h( V2 H$ [- D2 ?" C0 W: S! l9 E this->reportFinished();# j' V2 C" w0 W6 \: [' h, {
}7 C, _ z. l; b( D! T: |% w' M! k
T result;$ R5 \( g+ w( Z2 G7 b0 S
};
: L, S" X! {0 S1 {, u! Y. K1 D& h- {0 S; ]9 F
template <>
3 g2 s b" O6 R: ]) K: Qclass RunFunctionTask<void> : public RunFunctionTaskBase<void>' W. }# C7 Y) j" D
{7 T4 W1 ]5 Q+ ^$ ]: Y$ F. U( ~
public:
1 U1 }# j& |3 t/ _* {0 M4 z @ void run()/ l1 V- C5 h: X5 U) K, X+ ^
{* w* j! k8 j" y2 z) b" K% ]
if (this->isCanceled()) {
# ]0 @ L+ \% u3 L6 h/ E this->reportFinished();# ~, i; F5 V; K8 u
return;
9 q( @* J: k4 i" s0 m }8 p) w) x1 P6 |4 c$ e
this->runFunctor();$ V# s) q, A Y f' j; Z- r
this->reportFinished();5 C) r4 r9 {/ K+ B0 \, K' N; q
}
n* p8 C) L/ Z# g: x+ ~};
* w- L1 s2 A. D5 F
7 X% x2 Y7 F1 P# e. X: N# H* c} //namespace QtConcurrent: [" J! ]9 I L: x$ A3 E
. A/ w( r f+ R) M2 Q- z#endif //qdoc
& Z/ P# C! m" h4 y. `/ M1 @% j/ D' i2 u) ^# i: U
QT_END_NAMESPACE
# Y) u0 t M' R6 fQT_END_HEADER
. S$ o N' O ?2 M& L1 k: q+ w) v# S3 }8 `8 t$ g
#endif // QT_NO_CONCURRENT" _0 C) P- p/ p# H
4 n0 p5 T" Z# s; K f1 _6 u) a#endif
3 G4 W1 T' }1 q
* O- ?, |1 A9 o |
|