|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
- l4 P$ f, J* W& ]7 p8 w/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter': k: w7 J$ O7 W) ~' h
4 P0 h) k9 v0 |1 w7 `$ T3 b
这个头文件内容如下:/ {3 [3 R5 K$ [ s, y- |( s
#ifndef QTCONCURRENT_RUNBASE_H8 A9 W8 h: l$ k6 j: e
#define QTCONCURRENT_RUNBASE_H
" ?3 }# {* Z8 ^" {0 r- u; Y* d: T$ e1 f1 b( W. [
#include <QtCore/qglobal.h>$ L* r5 e6 i% }5 T- S& M2 l
- o6 U+ }, k: h0 c0 {#ifndef QT_NO_CONCURRENT% g# E" H! A) Y, q; i
6 O, F( r0 u; q; i* E2 w& J" i9 Q#include <QtCore/qfuture.h>- }" I6 t3 ]$ D, `/ g G* _
#include <QtCore/qrunnable.h>0 `! L t% z% b% N K5 y7 d
#include <QtCore/qthreadpool.h>; K) b. `3 I9 b. f8 u
& a8 F9 `% y H7 L+ D/ FQT_BEGIN_HEADER
3 E* t. h- R: H7 f8 D; sQT_BEGIN_NAMESPACE
6 B; ^* t. g" G) a0 [0 A, \, g- A8 E$ l1 b& u
QT_MODULE(Core)
9 h# k& d5 ?0 d* L1 ]4 [% s2 N; `" [
#ifndef qdoc
* Q/ Q- @: y4 ?6 W( X" M/ L) b8 p4 C6 _# D& u
namespace QtConcurrent {( a5 J: S$ T; }7 ^: {& s4 p+ }
9 w4 [. o. } v( n" r
template <typename T>8 z& P6 _/ H! y
struct SelectSpecialization7 V. O5 T- G1 A' L5 y# y
{
, F0 |; G$ d3 s" g$ {# i8 D template <class Normal, class Void>3 v2 J7 v# L, v* G; G9 S
struct Type { typedef Normal type; };
" x: m y1 B0 J* @2 \& [' B};8 M: |* r$ V3 l2 `. \, I
& u2 o: Z0 }1 ]template <>) p9 X0 j7 O1 ]* y# y
struct SelectSpecialization<void>/ ^# x9 L4 W: O2 w0 Y
{7 E- E+ M o' C
template <class Normal, class Void>
8 M2 i; h _/ f/ L$ Y( B5 b struct Type { typedef Void type; };
) D$ J5 f3 M% j( L};8 I9 m' m- m! l0 l( h
1 Z9 v, J% E& v$ H5 d/ qtemplate <typename T>+ M6 Q# L4 v4 }' Y
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
g+ @' l$ }- I5 S; z; z5 ^: G/ Z{2 T* B+ j+ V& j/ |: a4 ~/ w: i
public:2 b" c D- p' z9 ~: S- I4 T$ v
QFuture<T> start()
- n/ S4 @- T4 J- E7 T5 v, F {# s: q/ ~7 e6 b: n$ O; U8 G
this->setRunnable(this);0 Q: z+ N$ x, D$ A
this->reportStarted();8 n% V: A8 {3 |5 k
QFuture<T> future = this->future();
1 H) `! a& E! ]1 p! L QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
5 q( s7 |; L5 |, ?9 k) q' k, D return future;9 C0 A2 f* T( P# j
}' h' ^# V7 A: a0 T- y
* w4 ^+ h4 `; o2 a( M
void run() {}5 _7 t' K# h) J( z8 S, U N- t) a
virtual void runFunctor() = 0;
3 r V; V& _! g5 Z( | q. d) A& q};) o, \; p/ C" K1 S/ G8 @
/ e% F3 Q) h' q+ u+ w% Ftemplate <typename T>
9 z4 N1 L$ E/ F9 }class RunFunctionTask : public RunFunctionTaskBase<T>
3 ^0 V2 o' ?, N, D" p8 d4 E{6 D& Z# h r4 D7 I+ B- _; i( Z
public:2 [, w( p' B% r
void run()
6 d& a; n; C1 K8 n7 {; Z$ V, ~% l {, O7 R3 \# h( H5 Z, n
if (this->isCanceled()) {
; O3 Y$ v- t4 p* d% D& \ this->reportFinished();
$ P. g, v, u2 H# v return;
& i( o. Z* W) U" O3 t }
3 s+ ~) v6 s6 }, {, P w: H this->runFunctor();
" a% y# [! }4 K this->reportResult(result);# h4 H! b7 q/ p
this->reportFinished();* R. _9 E2 g0 K$ ^1 e
}# T. A9 |, R5 r
T result;( R1 q; p' c; j# z1 f: `' M# v
};. M3 Y5 M/ r& S7 t
; J! a1 b3 S5 I% ?9 r- d: v
template <>6 A- P1 D- Z: i. H# n4 G
class RunFunctionTask<void> : public RunFunctionTaskBase<void>/ ] S7 Y% O! B+ @5 s. m x
{
! [ B5 ]. x z/ C1 u! @0 tpublic:* E0 n3 X' x% X- a1 g! N. d
void run()
/ @; J+ w" t6 z# ^ {7 w4 B. l2 q8 y! r/ _1 u( S# u: l
if (this->isCanceled()) {
8 c0 G% G% F2 {5 p/ p this->reportFinished();
: _% N3 @/ B+ ^0 ]* q: J return;
, I9 w, g$ Q- x; B. O }
# l& O( i& [( [* D& Z& s% c this->runFunctor();4 x4 W6 X: g: H- W2 d# j
this->reportFinished();
, E) x' d3 e6 H+ N8 J! g }9 Z* X/ b" Q5 R' O$ k6 z/ ~8 m/ {
};4 }" u/ a' V3 ]
P+ W1 o5 }9 d* D4 N2 [# c
} //namespace QtConcurrent8 f* F9 _, K9 T S' \9 j2 @4 ^* s
( w. X& h8 W5 T/ L7 A* a' P; N5 Z#endif //qdoc8 t! x: D2 ^7 F) N
: D( f5 W9 g+ W6 h( R7 F* ~QT_END_NAMESPACE
* ?3 K8 o* i. IQT_END_HEADER/ s1 j/ D1 e4 J3 k. O( S2 p
0 R+ M; O0 q# n% i0 Y5 s8 D#endif // QT_NO_CONCURRENT
3 f* y) k- E& i2 |+ |1 X1 a
5 r9 H6 N4 c! a4 g% G9 h' T0 H#endif0 W* D( r6 P+ t$ T
: p+ R. v1 N6 Z3 ?& m- ]
|
|