|
|
我对syslink进行交叉编译到arm,但是出现如下错误:; g' b; W* M' U ]& J/ g, h2 m, A
/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 r* {- ~/ \( i" a. x+ C2 A. V2 k
+ c6 o M: p5 V, j: t. R) R/ i这个头文件内容如下:
& f6 L, {2 T9 B R6 y V3 a#ifndef QTCONCURRENT_RUNBASE_H
1 q0 d0 m7 j& G* I#define QTCONCURRENT_RUNBASE_H8 Y) t" ~9 L/ M( a
, W4 x$ P6 L/ k) L, R
#include <QtCore/qglobal.h>
$ r3 B3 t+ z" [5 m9 U7 {% y1 _5 j4 k2 [" H; u7 A" w
#ifndef QT_NO_CONCURRENT
# }# U: y1 `) M& p2 n; K3 r! Z# S: _5 l* i
#include <QtCore/qfuture.h>
. I- ~, v3 y$ n: K#include <QtCore/qrunnable.h>$ H- |* c( l' G. i" b. o4 F
#include <QtCore/qthreadpool.h>
5 ?; O! e4 c- u4 p" U; b
$ \* |6 m( x& ]QT_BEGIN_HEADER+ X+ M H& E& [* u( }
QT_BEGIN_NAMESPACE5 k, j$ x1 G+ P$ d* ]
) s7 l7 f1 `2 pQT_MODULE(Core)
3 ~1 S- k: J1 R9 {/ z: m! p# Z$ [, ?/ `/ h) P* K3 U" b1 b
#ifndef qdoc
6 a' L& S* b/ e7 x7 l# z8 Q- z' ]: }; f0 Y) k! j1 y0 n
namespace QtConcurrent {
3 n( [4 E q B2 k2 `7 _
8 `3 h- q; a' N/ h9 Jtemplate <typename T>
! V. M3 G( n. J4 {struct SelectSpecialization
! V5 r9 C8 G- w5 S0 W; c{7 X6 G7 {! f( z h
template <class Normal, class Void>
4 E' V. J: [" N' U4 I5 `" @, N4 q struct Type { typedef Normal type; };, z3 S. C- `6 l4 R8 T6 x6 [! @
};
) f8 @4 G5 ~9 U |
* A# K0 L. E5 a" ltemplate <>
; Z* V, a$ D4 n: C5 ostruct SelectSpecialization<void>' w1 q2 [( ^9 B( @/ E5 A" x8 f
{$ p! e" u: s: h3 b o) j7 Q
template <class Normal, class Void> E2 v! c7 l& y9 V7 A* z
struct Type { typedef Void type; };
a" n5 v: T7 Y1 o0 p% i};8 O) [9 i( Y/ Y) Z
! G: x, L' @' ?- {% B. etemplate <typename T>+ L$ I7 U+ v" x: W
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
. F: Q% K! P3 |7 c: w7 S; E{( s; _9 o6 x2 w: J1 N3 m: S2 |
public:& O# A; w: [8 j- G# s
QFuture<T> start()
* b$ W ?: O4 R {9 p& \1 S, t0 D) T
this->setRunnable(this);. c6 U+ {0 t1 L* x- a' `+ Z, ?
this->reportStarted();
3 N2 n6 u# R: B" P. d; V) H8 w QFuture<T> future = this->future();
" h, c4 E, X, L! N! x/ H QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
" U$ c3 E+ e, D6 _2 m6 V% H return future;- z! l5 {8 e* K9 V6 w$ B7 W
}8 R. W& _, s- ?9 O' w
2 g$ O6 T/ Z3 Y. }
void run() {}4 P1 g# g: {0 M
virtual void runFunctor() = 0;; W2 }2 z. F, d5 { m. W9 B
};# H# m f" T: t" E4 h
8 B8 _2 L+ v2 a! S% v. Xtemplate <typename T>/ f+ X7 @- U R! v* W2 n
class RunFunctionTask : public RunFunctionTaskBase<T>. E' M- `$ v. S9 X' R
{
) O2 G8 r( |3 S0 Upublic:$ b1 O7 q- X9 n" M
void run()
c# f! }3 r& c {
3 Z8 t, q( V. T1 @- |& h8 W if (this->isCanceled()) {
2 N/ O4 I9 _1 O5 ]: G5 X this->reportFinished();8 I8 Z; k2 Y' Z
return;
: b, j9 H; w! W& h }
+ q& G2 L2 w& b this->runFunctor();# ]& D( N- p! R8 ^: h) {4 W) @
this->reportResult(result);
! t& G9 B* a% [! d# \1 [* M: X3 K7 Y this->reportFinished();
6 e$ n+ x3 C/ C5 j# H& X }
3 l9 v7 _# b* [6 g2 S7 | T result;) |5 s: n% ]% o
};
/ ~4 H# O* \. f( S; ?0 m6 L2 g n" |
template <>9 Z4 K& z6 g1 i' l+ O+ k
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
9 i1 O% M6 X N' J) c; g$ S{ f$ l% v' Q/ b( l) V1 @
public:
9 W" M. Q4 O- G0 r void run()0 t- S- C" v( s1 j8 q0 B7 |8 r
{
+ J# G! W6 a" J) e% u+ V if (this->isCanceled()) {
9 F* h* J! |% h2 ~! v- W) m this->reportFinished();& x( g1 X5 R1 [. K
return;
, V; J! Q2 `) X0 T) V4 |5 T R }+ w" ~; I. M) c
this->runFunctor();6 P" X& O4 \. _0 g
this->reportFinished();! l' M9 e, ]3 |
}4 {4 |% ^/ g2 u# f
};: u2 v) m; B: d
, C/ d4 o3 ~5 Q/ a} //namespace QtConcurrent9 W( n/ t; J5 h: T2 S
+ B$ g- H8 ?/ \$ v0 B% k; D: V6 f% a
#endif //qdoc7 O0 t2 w7 `1 [5 t" S. l
, H3 l% i2 s- s8 c9 `- z7 z5 F
QT_END_NAMESPACE
- a' O0 n) Q+ T3 RQT_END_HEADER
8 H* c6 v& Q F k2 l- W( q \0 C) X' W% p' W. T& A' ~$ i- F1 ~
#endif // QT_NO_CONCURRENT. q2 g% f6 }. j* X/ t( O2 x
) S) h/ b9 N. c8 O& x, n% {9 v! P#endif+ B, Z( g- K8 M! h% T* o6 H
# D4 R1 t s5 H9 x* h |
|