|
|
我对syslink进行交叉编译到arm,但是出现如下错误:3 h$ ^8 y! _" `+ T6 X! O! \" ~1 @& s
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'" I$ I0 a4 N! D7 v# g: U) A0 k
% T# a* v( e+ j5 W q这个头文件内容如下:
" Z' ~6 K- [) l7 c" D#ifndef QTCONCURRENT_RUNBASE_H8 G- s) k2 _- @ V9 t
#define QTCONCURRENT_RUNBASE_H
2 {$ @! h% S8 F+ R* a. y* A8 S7 i" G P- g8 i5 t
#include <QtCore/qglobal.h>% e* o3 @$ E6 c) F
& H8 v1 M4 ^) J' i: n6 t#ifndef QT_NO_CONCURRENT. a1 k5 ]: F, ?/ m
" R5 c8 R s0 X( Z2 D
#include <QtCore/qfuture.h>
, ]# x; x* ?7 H#include <QtCore/qrunnable.h>
+ B2 S0 f5 [# i, G8 w" B$ r#include <QtCore/qthreadpool.h># h& Y! D1 f( k; B
. B9 D' A' d8 D3 w, ]
QT_BEGIN_HEADER6 O3 T; V4 w- P
QT_BEGIN_NAMESPACE
- w0 S! e& Z0 [( S6 [0 C$ X; W; y* M
QT_MODULE(Core)
5 j i4 Q+ Y* @! T' ?1 m |& K- A( T5 A& U
#ifndef qdoc$ h' ^& I+ A [
7 z! A# w& F" ?& D% Nnamespace QtConcurrent {) L. ]7 I( y# e d) u' ]
6 Q' @2 K& I. \) T% e7 R0 wtemplate <typename T>
6 ~2 Q/ @1 s, e0 x" ^: Bstruct SelectSpecialization& N! p) _) P% @+ N" V3 ~" U$ m" I
{
) ^8 _8 W( O: M* Q! j+ O) A template <class Normal, class Void>1 D& z7 M- _5 P/ ^& O% p, \1 `8 r
struct Type { typedef Normal type; };8 \: u1 a% @ G2 ?# s
};
- `( l( v) N: l, s. p4 x6 v3 ]7 @0 G; w/ G5 w8 s
template <>
/ ?% B: b5 \- Z! j$ z, v6 O! cstruct SelectSpecialization<void>. q+ a$ g/ ^* R8 j$ b0 e: m
{" c: t, A8 P: S* x p
template <class Normal, class Void>
* U2 C& ]5 n0 m1 [/ Y A' O: p struct Type { typedef Void type; };5 V( U) t; K1 Y; ~; e; F
};
9 j5 u; J* F$ n1 y$ C0 e2 t- l- f
template <typename T>( }% O1 n( W9 H" V7 P7 r; W3 Y& }
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable" D8 y) n0 Y) h4 g& k/ l% x
{" W3 J! f4 @% z; W! e; s% o
public:
& b4 Q9 H3 L+ L. k5 F4 t2 _ QFuture<T> start()5 X, [! Z( b/ P# h% D! @
{
0 y% Q9 c- ]8 }0 c0 V9 @8 w' M this->setRunnable(this);# ?% s$ U; h+ k# Y' c
this->reportStarted();6 q9 _3 ]. @ h+ `; I; x' W4 x1 ^3 m
QFuture<T> future = this->future();( X, Z* a: z/ w
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; G# G2 w& C% _1 k# X, b return future;
5 i- g4 C$ n5 N" [- C }
+ Y9 w' X; t; ?; I; J
1 T/ H4 V: u. v; K% G void run() {}
7 h/ X8 Y, j0 z6 i+ O2 q4 p5 M virtual void runFunctor() = 0;/ Q8 n8 A2 Q1 z5 t p" I: A* J
};
* A! H/ \) x! ?" f
" _2 Q* k5 w9 P: L1 R" p) vtemplate <typename T>
/ d) I% _" G) G* Lclass RunFunctionTask : public RunFunctionTaskBase<T>8 o; s4 x" K. b
{5 B2 P: c/ m' f0 d6 F% L
public:2 t, @: x$ o0 n5 r* E
void run()4 U5 s. ]# D, B; U W
{
: V3 r/ R5 n; J4 r8 ^" G- a if (this->isCanceled()) {
`/ v- t+ `5 [! S this->reportFinished();, h* S( ^3 e/ E; V+ l
return;: S3 R2 |5 S! L; |/ u
}/ B7 w9 L* b5 ]7 K
this->runFunctor();6 K; N% A* O* I+ y- K8 p2 O& l; N9 q
this->reportResult(result);. R+ m$ E- A/ v
this->reportFinished();
" v/ H6 P' Z7 t [/ m }6 L4 K8 U/ J$ [8 u" v0 L: ~% D
T result;
% S. l9 c* W' N+ f! d3 a};/ T7 A8 f, h% T% Z% v5 r" R9 i& d
9 a0 q/ W) h+ m9 otemplate <>
: l! e/ {6 X( p" m3 c2 `5 _class RunFunctionTask<void> : public RunFunctionTaskBase<void>
! v6 k: I, i6 [( M: a{; d* @2 s. B6 T% P/ U ^
public:) n8 X4 ]3 ~" \" ]4 M5 }8 y3 n
void run()
1 U1 n) w% `& [ H {
) s6 u4 T% |, W( [ if (this->isCanceled()) {
* c) G+ a" W/ Q+ Y! t this->reportFinished();
0 S: i7 p7 H2 I% s9 w+ n return;( ~: r6 A/ f; D
}7 I& D( s1 e" @1 Y" A
this->runFunctor();
8 b' Z- P9 }6 \! t this->reportFinished();
+ \) M- V5 \4 ?! P }9 j0 u9 ?% z# J% }& b# C
};: A4 c, e" H# t( t8 r
% k0 H5 p# E: J} //namespace QtConcurrent
9 n( Q7 a* A* Q, K1 V9 x# c
3 x3 O4 x* W2 m; t7 ^#endif //qdoc
2 v% T7 w/ A+ r3 P' | g
% m, c1 f0 U1 s1 nQT_END_NAMESPACE
5 ^" M @4 ]. h* e4 N! t+ ?' kQT_END_HEADER
C' w2 v. j* g5 e4 M
6 c* t' B$ Q# {5 j8 d* t# o# P- n#endif // QT_NO_CONCURRENT6 }2 i; W! i' w& k
: ?# K6 I- k0 `: e9 i+ n9 m' \/ N#endif4 y0 ~4 ]/ F. n, a) k
$ [8 P9 k( X* w8 F
|
|