|
|
我对syslink进行交叉编译到arm,但是出现如下错误:+ ^* n9 I# x% u
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'( g; L' A7 Q" ?4 u9 y; G7 Y" B
0 b8 w; {' H5 Q这个头文件内容如下:
, r0 T' C3 W. [, u# e7 `#ifndef QTCONCURRENT_RUNBASE_H
; ?3 R' z5 T! Y3 V#define QTCONCURRENT_RUNBASE_H9 h; `2 Y2 I3 y# M6 k5 J
6 W- d1 C `* l& ]
#include <QtCore/qglobal.h>. j G( d8 K3 Z3 i
& V4 j) T' T2 I/ U5 ~
#ifndef QT_NO_CONCURRENT
3 j! b6 |+ F# X8 r) ?3 |. R8 p) y. X' w' Y! l/ o$ h
#include <QtCore/qfuture.h>
$ V5 {& d& a0 E/ R#include <QtCore/qrunnable.h>
* r$ {, o0 ]; t9 |# `$ h6 W#include <QtCore/qthreadpool.h>
( {% D- L0 B/ t4 ^/ p: p6 C! i! ^4 R" C' p1 J) z$ _
QT_BEGIN_HEADER' f6 T# | b0 B! m6 V: E
QT_BEGIN_NAMESPACE
) T2 z5 i# r2 ^5 W" d* L4 H1 C" D9 y2 E0 `$ e
QT_MODULE(Core)$ T* o' a) h2 z; I
/ O7 u& w# s1 N! |#ifndef qdoc
! W2 S4 Y Z# v2 ~1 F# w% w
' b9 J+ F5 r2 \6 s+ fnamespace QtConcurrent {8 E: H: w4 ]1 _0 {. l
5 f6 a/ W2 x1 G7 htemplate <typename T>. C% i5 a5 v) e9 I$ V
struct SelectSpecialization1 F. y* ]! Y: I; h9 L! I7 `
{
- L3 Q3 I& Q: J e# t template <class Normal, class Void>0 K* k) M0 D8 p7 a
struct Type { typedef Normal type; };, R0 q, } L' ^
};
6 q# T6 a+ T, j' g
l L# |3 e9 G7 D3 ~( q2 gtemplate <>
k% H4 y2 i) U7 {struct SelectSpecialization<void>
f$ I: S( b9 L& v! A" P{+ e" [* A6 {) }* {1 K9 J
template <class Normal, class Void>" E1 Q$ N/ r2 o1 P
struct Type { typedef Void type; };, A/ c- ~3 o( R
};
: S: N* x: L% l5 S( e% Y% c+ H0 o0 |" D/ |! {3 Z5 @7 U
template <typename T>' o# L" p5 }0 Q' k
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
8 {/ E% d7 W" h2 ^# r+ e{8 X( m, j$ V2 h+ D/ B3 h9 `
public:
7 p+ z. {% T' z7 B* ]( _ QFuture<T> start()
& e& b$ ]/ f% r; l# i {# k* G! N8 `& L' J/ Q: K
this->setRunnable(this);- p- w0 e- X3 h1 N+ l
this->reportStarted();
# ?) J% d, `! t1 K, @ QFuture<T> future = this->future();# ^: Y! Y5 v, E1 p7 R( n
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
* M& I1 j1 r5 V4 m3 [. E return future;, j' K7 Z' R% A/ p* ]: D
}) S8 G! Y- A/ U" ^+ k) E3 y
: T2 h& f2 e0 c: D7 `" O& r3 H$ Y void run() {}
( f( q, M6 b. H E: |9 Y virtual void runFunctor() = 0;" c* g) [) ]' z- i- F( Q* s# K6 `$ n
};! f+ \5 o' M0 O) o% `* x/ B
4 t9 D |5 O/ stemplate <typename T>: m5 p+ _, j8 d E7 ]
class RunFunctionTask : public RunFunctionTaskBase<T>
( ]/ x. l6 m+ T5 a. q6 ~9 K{2 P! [. A- v1 }' }* k
public:
0 Y3 i5 s, Z4 E# B5 y9 c! n# n void run()1 _2 m. K7 i( a: a5 \7 a! W6 k
{2 Y9 Q n" \) d' g! u/ B
if (this->isCanceled()) {6 G1 H/ F6 G7 X- v5 [5 H' ^
this->reportFinished();3 W6 }* z- n9 ?, G/ ~" m
return;
# m& ^: n" ?; I" a0 Y) ] }
0 u- U8 j3 D. g5 x$ x3 X this->runFunctor();0 H3 F' Z8 U$ f+ k6 z
this->reportResult(result);7 `; t; s: x9 a& ~
this->reportFinished();) x# o! N4 g8 _" g2 Y
}
; d! W0 y8 A% Q! u T result;
5 |8 M: t8 F4 |9 D7 l* s0 s};
; m( b# N+ P2 t5 l, k" \8 j z* E4 Y( k$ X. V) U
template <>% Z1 Q2 K- ]: R; o; o z# O
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
, g% c& m8 c& X y' a) z{5 m& ^( p: P4 X$ z; {, [2 P: \# E
public:
3 i4 ?/ b1 I6 J7 K0 W2 o) B% y void run()+ Q$ S6 P$ Y! s4 Y/ Y
{& F2 ~$ `: c" i
if (this->isCanceled()) {
8 V# {. R' o+ t' v. u this->reportFinished();! H- ]2 C$ p9 S
return;
6 E$ k4 \- U9 J( b+ N# t8 Y5 f }
+ h( O) K0 e' \5 f; o this->runFunctor();
2 W4 a% `& y+ d this->reportFinished();
; \& Q' Y6 n; a* k" F7 d }, `2 y$ A* D" ?3 b- @0 c
};, {- R8 f% l* W# |! i' ]& w
6 @" ^0 c5 m: T7 x
} //namespace QtConcurrent
8 B- x; R, K {( _. ^; u: n. `
1 D% `7 a8 J1 [9 a#endif //qdoc" X8 z7 C3 d/ C6 j
0 e! V* e3 C4 y' v/ Q* F% k7 PQT_END_NAMESPACE( L8 |/ r/ r7 ~2 w
QT_END_HEADER/ L. J6 m5 a) T9 T
: B+ D' T6 G4 p; K1 g6 o& M
#endif // QT_NO_CONCURRENT# z5 D. C$ ?2 J6 N, |
; ^ j" |& L7 S+ u" e4 T#endif. U9 w7 N, u* I4 P
# i S. `' g0 B6 {
|
|