|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
. e1 j& U. Z3 g3 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'& e9 T K3 D& J8 n6 N# Q. @
. ~2 i2 C3 x) R! d这个头文件内容如下:, t+ Z, c5 M+ B6 Y
#ifndef QTCONCURRENT_RUNBASE_H
; L9 |0 B$ @0 y7 {#define QTCONCURRENT_RUNBASE_H" Q% ~! z7 m6 Y1 z6 q! N
! e( g9 x' K8 e* R
#include <QtCore/qglobal.h>8 P6 {0 H# I" M. M+ f9 X
4 ]) H' k( m: R+ J#ifndef QT_NO_CONCURRENT& G, _- {4 V5 w/ @/ l$ O
! q$ r" j" }1 H9 b) X( c#include <QtCore/qfuture.h>% ~" e6 m* L' ^9 F; N5 o f0 j
#include <QtCore/qrunnable.h>
9 c+ ?# I9 |* ~ ?& B3 V#include <QtCore/qthreadpool.h>
9 r4 `8 A h z1 L: N3 ?/ T8 `
& T2 P: D/ b9 c" A7 } j9 J* oQT_BEGIN_HEADER
' a9 D/ X& X( ]4 M* c7 h. L. MQT_BEGIN_NAMESPACE
+ L( l2 X/ t3 e( q' b6 {' ^$ J0 s; z# E0 B1 h' p, {4 n' z
QT_MODULE(Core)
: j F& R) b# h& Y, J' D& n# J* d2 C
#ifndef qdoc
/ }% [8 y+ S4 Y9 L4 ?' ]
& U4 b1 a0 N6 p8 Ynamespace QtConcurrent {6 \) p' c% f" |6 T$ `; O
9 j8 c0 h1 V# s. Z
template <typename T>4 I( T8 {4 N0 W7 J# }- ^
struct SelectSpecialization
7 g0 g4 W7 M& r: z0 m; M{/ Z$ _7 H: Z" f+ K o
template <class Normal, class Void>, S$ N$ g; _# T; g9 S% w
struct Type { typedef Normal type; };
/ L. V; M7 M t3 @# R3 c2 u4 c};8 n; R+ [ r: S Y
# t* }# C) y5 I' V) M/ C e# |0 o
template <>$ h! e9 e0 m6 q$ M6 B
struct SelectSpecialization<void>
4 L$ n6 @2 f2 G8 D{
5 I& S' E- t9 G( k template <class Normal, class Void>
C- b0 e" B. z# p% u/ b) t `, [ struct Type { typedef Void type; };" Z I% @- ?5 h5 ]- S0 i1 o
};+ a9 Q2 t2 H" s" _3 X# c' x! n
9 B% o1 E' o3 G9 p+ D( A, U- ~template <typename T>' S6 R3 B0 l }8 I" L3 E! L- Y: B
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable3 O9 Q' c4 P/ X7 A3 j1 |, E
{
( k6 _3 d$ v4 i6 d0 z% lpublic:
! S& {/ ]# l- H- {; l5 e QFuture<T> start()
/ A/ m# g% v2 f7 R; X! a {
* b3 u8 o+ a1 g: @1 K7 D this->setRunnable(this);
, ~8 C( U3 l) \ this->reportStarted();1 \+ B4 z( h1 x" b) K! }% V6 M
QFuture<T> future = this->future();# {- f2 k8 [1 E4 K
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);# U, X! m9 s, ~) b% j# b) C
return future;
^9 M: @2 s. r }
6 F+ \" J. m2 i' k' f3 x2 n, F$ |7 n) ~
void run() {}
( C' ^8 m9 P' x& w$ J7 m virtual void runFunctor() = 0;
, D+ W; N4 D9 z};
; x8 V. [4 f1 F6 j
, H L0 U8 Y4 x4 u5 d8 Q* htemplate <typename T>
, M) {4 V9 _, A5 |/ V* X2 }8 }class RunFunctionTask : public RunFunctionTaskBase<T>$ x% l( |; O3 C0 Y+ T% W" o/ D
{0 \2 p+ b7 R* `
public:1 k# A; Q% y- t0 x
void run()
5 S1 C+ h9 c S7 ?% U2 x' D a {7 Y2 i$ _! X; w2 |
if (this->isCanceled()) {' K, e; Q& v8 v" z! U! q
this->reportFinished();
# O9 y' {( g7 }( y& r' j8 g+ U1 i return;" F1 E7 P* f' W
}- p1 D; W- j2 w' o4 F
this->runFunctor();
0 L5 N6 w( |' }/ Y! p this->reportResult(result);2 |; G6 f4 v- d# r
this->reportFinished();
$ G! U n: L" o7 B; Q" v }( d2 h5 G. `; m' q1 r: \# {
T result;% Z, H1 p, t& Y
};8 [) V: _8 \: j. ?" g5 C9 ?
4 n5 x( |0 X+ q8 F5 D0 @template <>
6 f: {3 q7 W% w; M0 ]2 F: K' Qclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 d/ R' E. c5 Q3 ]0 O{
- L; r. A* _5 {: b- j# D& spublic:
' ` u! Z* N" J+ n3 j, x$ Z! u! _ void run()4 H0 {( G/ ?. T* D; L( W9 @8 h7 I
{
! E. C5 X6 W. s9 s' X2 }+ w1 F; A* I if (this->isCanceled()) {4 G% S" Y# A3 H# @1 \/ S2 B
this->reportFinished();
+ s! E! H9 m5 n/ Q" E return;
1 l: Y$ y) j3 z } R6 `2 W9 u" M" M* _5 x. d
this->runFunctor();
& e" E$ p$ Z; D* E# q$ W this->reportFinished();
( _9 N T* ]4 z8 W2 |- y* m9 P4 r6 U }4 Z( r8 m$ ~2 R9 N, x2 L1 _. l+ e
};
$ m3 C W% B' c# T9 B: B2 d. n- y3 P" b
} //namespace QtConcurrent
+ d$ C: e4 @3 X& D$ X) B) E& d7 j2 `! p' I# x/ E
#endif //qdoc
4 y0 w7 v P" F/ G1 Z7 h; e$ T* D' j- y$ }8 |* _
QT_END_NAMESPACE1 A$ b: H; L- G0 [6 A0 x9 L
QT_END_HEADER# M4 `$ z1 D8 B
I, H: v8 ~8 V) s: l& N5 R, G" W
#endif // QT_NO_CONCURRENT
* Y5 d" Y* Q3 J9 O( y+ c9 }: O( E. L6 E$ x# e' i
#endif
, X% ?& v0 u. n p7 }; \3 R& Y. r) j9 O: P5 @7 P$ H
|
|