|
|
我对syslink进行交叉编译到arm,但是出现如下错误:; i2 y" B1 S" S8 A& x
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'. ~2 i- `+ X! f6 `: J
& I6 }; `) ~, M( ^2 C
这个头文件内容如下:
; l3 d2 S c% j4 x" v#ifndef QTCONCURRENT_RUNBASE_H
. _/ K7 b6 M9 |1 l4 u#define QTCONCURRENT_RUNBASE_H
- e' u/ p9 a/ ^2 P6 N
7 E9 |( r; u4 e* n! w" i Z#include <QtCore/qglobal.h>% J' _5 a' w; O3 U. l( [3 W
! |9 N* N. T- Y#ifndef QT_NO_CONCURRENT
$ s2 P% N% k) \9 d; j
9 M* m+ n1 D5 x5 y#include <QtCore/qfuture.h>4 T6 g8 A- |( G5 h8 p$ z- e, J
#include <QtCore/qrunnable.h>
9 C/ q/ U# S1 O#include <QtCore/qthreadpool.h>
: q1 K2 H$ f" @. i( U8 I
% g' |( z% M5 @1 {0 A- qQT_BEGIN_HEADER" c/ b; r; P" Z+ h0 r$ Z0 e$ g
QT_BEGIN_NAMESPACE z" S* `! f( |+ Z* K; X( z* W
( S' h( Q% r! Q, v6 G# r( k3 V8 f
QT_MODULE(Core)4 D0 d: N# ~# T
+ b# a0 j9 a0 R/ [5 l \#ifndef qdoc
+ q k' r% K. _7 O: i# u& j% L% _- l( |7 ^& {9 S% N
namespace QtConcurrent {
3 X2 i6 b% e7 \9 b0 T8 l) |+ }( T" e% O9 t
template <typename T>8 W+ K5 Q; y) N5 H! d
struct SelectSpecialization
0 L8 ^( O: Z$ Q{
8 Z' X! X) T* z& H" I* B9 o8 a9 e. i template <class Normal, class Void>4 O' Y/ V4 A5 a: X2 W
struct Type { typedef Normal type; };/ S/ Y' D b8 c
};
$ R& |" W6 |& M \. P9 ~
: i2 }& ?5 y+ t$ t! ftemplate <>
2 u( k2 `) Q# n" W7 ]6 l8 G; I; Istruct SelectSpecialization<void>
; ~) j6 w+ G2 N/ y* g6 |{
4 C- z$ K8 r8 h3 a5 p' I template <class Normal, class Void>
* c* l- c5 V. j4 I5 R struct Type { typedef Void type; };
& a: X f6 H! L a};
}) ^$ _/ Z& B7 k4 q$ }1 V) n1 e3 g1 M( B
template <typename T>
! ~+ J& I! K1 i% O s. M8 Rclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
5 h6 z, q( f2 @{& k+ L* F$ Y/ x7 G# _ ]. I
public:/ A3 c% |& a9 M1 B2 ^- V
QFuture<T> start()$ C' T4 g/ ?1 q/ j4 ^2 n( O2 T
{
& t6 f/ T, x9 m$ | this->setRunnable(this);
/ g& b) A. P1 N. i$ g this->reportStarted();
$ w' Y2 j: x7 u, W QFuture<T> future = this->future();- G. o1 d* m2 }4 u$ H3 P
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);6 K& s+ s* z+ d5 ?$ B
return future;
9 ?- n( }! M! N+ ? }1 K1 f; t9 m; m7 [1 F( {
. }8 o3 c* @2 E2 |2 J
void run() {}
% D1 U( J2 K- P; L) [ virtual void runFunctor() = 0;& N5 n( m; F/ N9 Z% W
};4 O1 O9 D) u* l' e3 o6 U( l
4 ^9 J+ s7 j: ytemplate <typename T>
5 B. ]7 C! x9 b" r- P" uclass RunFunctionTask : public RunFunctionTaskBase<T>
) |5 Y! ~: R; J# w& p- w; ]2 v# f{
$ y1 U; h- x6 [public:$ W9 i g7 K. r9 m: E
void run()+ X2 |2 u; f2 n
{/ ?* }% O; E; g2 ^* K6 u( \
if (this->isCanceled()) {
0 D; y5 `9 `' [- ~2 { this->reportFinished();( h- a5 i6 M2 Q y
return;' N/ S- B+ ^# \# z: D2 C
}0 f* }& Y( @) B* w" o
this->runFunctor();
+ s, F* q" u7 w- f/ u# Z2 [ this->reportResult(result);
% V+ R( X* \$ @$ Q# I5 }, |) O* `+ R this->reportFinished();
7 c+ M* z; ~+ J- v }3 ~, e3 K) P. y7 x' h* o& c
T result;
$ J0 }( n/ ~ P7 ]: L+ W, n};
$ \# x' U& r6 U) v; R) D( K! e C: z0 T1 h9 z# d# x# Z
template <>" J7 K5 e' W: Y4 z
class RunFunctionTask<void> : public RunFunctionTaskBase<void>* M- A! P( D8 o- s: c
{# @* b p# B/ w1 r, C
public:
/ d" G/ p! b4 @( z9 j6 Q# A void run()
4 j9 ?4 R( J* N3 N {
; {% y a; h. |# V. d3 Z$ D ?+ k if (this->isCanceled()) {
4 f! y4 s: v3 B! t2 J7 l7 I C. J this->reportFinished();2 {& f; M# Y- v
return;
: v/ }1 n1 D* F W5 h6 t9 V# s }
& }9 D+ A0 ~$ {# ?* ?, Z8 m this->runFunctor();3 m2 `5 Z/ \7 f6 Y+ @: `: B, ]$ C
this->reportFinished();
! ?2 P/ t2 U' e+ b }0 j$ C0 S- s& \% z- }3 s
};
+ | E) @! S. B. Z
( M) \' m/ q4 J3 [} //namespace QtConcurrent
% i+ V' x4 z* m" y$ q/ ]3 f) Z, c5 N% ]2 i! h
#endif //qdoc
6 K9 C/ B. _2 _2 D& h; u0 P$ ^4 t
4 B0 i1 t3 u) w# O& tQT_END_NAMESPACE
$ j4 b6 Z7 N* d1 J$ x! J" ~* U. HQT_END_HEADER* b' o: C5 }1 u$ T6 y9 ]0 L5 H
X/ Z% E' O# ?% @. e
#endif // QT_NO_CONCURRENT
7 s8 }& U- Y, B! A+ T$ O/ P6 K6 @7 D1 X- f. P3 `
#endif3 A4 X% a# k. w& i9 ?0 f9 ~
: E' E- D) d2 |% a- U
|
|