|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
3 A! m5 \" X$ c/ H( i, 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'
1 |9 u; d. j. n6 A) M1 m1 F& u1 W; n! a
这个头文件内容如下:7 B# r, s, \2 x3 x) g) n
#ifndef QTCONCURRENT_RUNBASE_H
3 t; }2 m4 Y( R% O#define QTCONCURRENT_RUNBASE_H& J0 C+ w. S& q
6 H+ m. _# t: E+ S% ?( x
#include <QtCore/qglobal.h>: m3 J2 g0 S7 K3 X1 k
; c( ]3 V2 a- ^8 o8 q: M6 l) q) I#ifndef QT_NO_CONCURRENT
: Q Z) q5 s2 _. p5 C& O/ p/ K$ E- l V' u, [% T- e
#include <QtCore/qfuture.h>
, a3 B" {( q5 T2 _+ B#include <QtCore/qrunnable.h>
( [) P) g$ m v7 `% I7 s7 E' k#include <QtCore/qthreadpool.h>
h4 T, x+ `% _7 p- w
4 E# | S w& V |" t6 N/ [: YQT_BEGIN_HEADER
& w9 x0 t! y9 v, f. @QT_BEGIN_NAMESPACE8 y0 S; V- S9 g5 S7 J; ~
# S1 U+ g( x- ?1 ]QT_MODULE(Core)+ U. U/ E, m1 \8 a- E& s: n- i7 X
5 F4 H4 y) T' x$ y3 q$ _, X
#ifndef qdoc) M+ [# K; d: P9 j: x3 W" ]% U
, d0 |6 V- c- R
namespace QtConcurrent {
; o- Y4 P; z/ ?1 |4 b$ @7 g- O8 H9 T0 g% P
template <typename T>6 n+ F9 i+ I+ Y# Y3 p
struct SelectSpecialization
0 `, ~( q8 [3 |7 m0 M- {7 g{ D8 Y: m, ? @$ H; b1 H
template <class Normal, class Void>
4 D3 Z3 ]. ^" k0 n' O struct Type { typedef Normal type; };! I! `/ ~8 |: D7 d1 p2 W
};
2 P5 Y% G H% x& L/ D
: f* t- M$ B' m6 H5 ~7 ctemplate <>$ R$ Z- l4 u4 c6 ~1 p g
struct SelectSpecialization<void>( A$ B7 B$ Q: v& U+ G/ S6 w6 _
{
5 f( K! L" @; r A1 N, r& \9 U template <class Normal, class Void>6 H* g' `/ _/ ~8 U! W
struct Type { typedef Void type; };
1 |) |9 x) w* P& V0 l6 ]& Z2 J' s};* p! e$ D9 d" ]: S
: b, F% {7 ~1 {1 ftemplate <typename T>) F8 a) N( I# j5 H
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable6 b" v- Q5 c! s5 O2 W0 p) u
{( h) t$ n. P n/ v }/ v
public:; q; {: m1 j8 `5 P5 |( ^
QFuture<T> start()
- q r. W; ]2 Y$ t {" |9 _/ ?. |8 }& N
this->setRunnable(this);/ x9 C8 [* k6 j8 @
this->reportStarted();. _% p% P9 M8 I! ~
QFuture<T> future = this->future();( W/ Z# q* D& _2 p
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
% s. v. X* \. I. z6 n: Q return future; @3 d3 j8 q. H' n
}
0 G4 X: [. e' {; s$ e7 f" [- K5 V( _- m, C
void run() {}# I. Q$ k [! P$ L
virtual void runFunctor() = 0;; c$ u" I* S K7 r/ `/ G; q8 v Q
};- q4 x# Y$ a7 u# @. W- p, @
1 k# T; s, n' Q& j8 e$ }( Wtemplate <typename T>
. Y/ j" \2 _ M( dclass RunFunctionTask : public RunFunctionTaskBase<T>+ E3 O$ k0 ~# e$ w
{7 ^" D8 }" }8 R! I3 _2 h' z
public:7 A$ I* Q6 |0 h5 b7 @* [
void run()8 P% C! w; }# g" A, j, v
{
2 N& b2 E- x& g F) ?( x F if (this->isCanceled()) {
5 j' i' F7 K, _2 U3 M' k, o" `! _ this->reportFinished();3 z4 u) x! M: e/ f
return;' j- i n6 w2 A( z
}1 w1 `3 g [1 V! j. z8 C: E
this->runFunctor();
' \: _) J, A7 T: k! ^ this->reportResult(result);1 X3 k$ [! b. @' m: N" q7 Z- r) G3 u8 V
this->reportFinished();
. o, q1 B" I+ k' o }+ y- A8 V" O6 J8 l- X9 i! }
T result;. {1 A- A4 G' [. `
}; N! h! n0 a: x0 o, a
+ i, C+ r2 b. } c ?template <>
0 S/ c- l: ?0 |4 N% n9 Cclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
9 d/ Q2 e4 _: Y& O# ^{. @& y% U5 Z4 u- X
public:
! o5 k! j9 F+ |4 R& \ void run()
0 \7 M1 A0 u: o {3 {6 z4 L* ?; a' z
if (this->isCanceled()) {
3 v6 K& Q4 E ? this->reportFinished();* F6 i% k/ O2 @* l
return;
0 @$ `, i( [' ]( ~- @, ? }$ [# y1 T& p3 a$ n" ]9 q
this->runFunctor();
, l. B+ L8 ?3 H8 y6 I$ A; H this->reportFinished();( A2 [& N, p/ b5 h( a1 ]' o T) T
}% ^3 O+ f, f0 }" @. ]
};
+ Z( r4 H! s( m, h
' O* L1 \# s5 H. E T4 s} //namespace QtConcurrent6 l2 @2 S; V& m8 w
* r [7 T" S" g/ A+ r4 b* A) j
#endif //qdoc
, Z: ^4 C! B( i
: Y6 s P! E& y3 c5 iQT_END_NAMESPACE
) _+ r3 ^" {4 {& U! C8 gQT_END_HEADER4 h- H7 d/ B- J$ Y' o
$ H: m' Z, T! O0 S' o, y
#endif // QT_NO_CONCURRENT- a5 d( a/ A& N$ z( g$ k
& q1 A* R* y [) K/ e* T& f
#endif
( I! E. M* o5 ?) q
* j8 m1 ?2 r4 R( W/ }+ H, y% d |
|