|
|
我对syslink进行交叉编译到arm,但是出现如下错误:3 n4 k2 @5 S" m7 D8 _2 `* W5 V
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
$ [: ~4 R8 y. v. `- o" p8 Q+ e( C- [' w4 X, X/ s; T
这个头文件内容如下:
1 [, A& F4 X# s% I" ?+ `#ifndef QTCONCURRENT_RUNBASE_H' I+ i9 ]; Z9 J7 O: [- S2 h, E
#define QTCONCURRENT_RUNBASE_H
; B4 J; I) m8 s- G7 J5 ]
, y+ }3 S! V( L+ }' i7 ?#include <QtCore/qglobal.h>
& Z4 A; D: `& I- F% t9 s* E2 r1 p9 j2 A% j+ S% W
#ifndef QT_NO_CONCURRENT
2 `) }; j' ?/ _
9 Z/ x! P2 x% y#include <QtCore/qfuture.h>
+ w8 L5 B! v+ B; i6 t' Z4 H#include <QtCore/qrunnable.h>
+ n7 y" q2 q+ p5 c) ]#include <QtCore/qthreadpool.h>
% ~4 ?) O# X: w6 W* n3 S9 h
7 Z# ]/ J' \) j4 y. M- J1 XQT_BEGIN_HEADER
9 N" J: Y( q8 B! f; G6 _) Q0 bQT_BEGIN_NAMESPACE W; d2 `6 m; a* F
0 x% m/ T$ P6 K1 l) p
QT_MODULE(Core)5 Q( x' ?0 m2 Z+ F2 }3 r. S* D& C
7 [# R! P# q4 z; R- k# ^#ifndef qdoc
, L* P1 {. V% o* R4 F& ]$ U1 |$ R* e2 P+ q
namespace QtConcurrent {
% i7 w( [6 A1 l. f" B5 t8 r) f7 ]: y
template <typename T>
* Z" r/ r. x5 Y8 u* ^* s3 e# Nstruct SelectSpecialization6 T7 O! L5 A/ M8 f$ R
{
( h4 `& p n" ] template <class Normal, class Void>
F1 m+ L* c: ~9 B+ F struct Type { typedef Normal type; };* i' o- Y3 L, A1 @, G$ ?, K7 s
};! A- o+ T2 t" N
: d7 H/ T7 |. s! k; s/ stemplate <>4 R1 X( y, i6 }8 d. P! \2 d
struct SelectSpecialization<void>* F( m; q* R! l9 t
{! d# q$ N2 d2 `( b
template <class Normal, class Void> u0 h- t! d6 M. ?1 z9 r
struct Type { typedef Void type; };( y* q7 {% s+ w9 V6 c* C
};# S" {0 m) t6 x/ B& I/ U, b" [" v
( a' |4 D$ p! ~3 a( mtemplate <typename T>; R7 K" [) E" d0 ?6 |* `
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
9 ~8 l3 |2 i( T* q+ o. z{
, w1 W* j/ ~0 R( ~: cpublic:
7 c) Z0 {" Q9 ~ QFuture<T> start(): o/ s3 U! w! N& i6 T
{5 O& s9 g7 p) K# A9 ?
this->setRunnable(this);
& c5 ^8 }, l1 c this->reportStarted();
! L5 D+ B* ^7 S7 |4 r QFuture<T> future = this->future();
& J- i$ D' a8 R% R( x# L& G) n QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
: ^- P. C" x' c& q* k( @ return future;
/ _* T/ u+ Y# c7 `: a! [& l }
* M! A% z7 f* L% x/ H( q& J* h
void run() {}+ H7 Z) ^& p1 J. l3 j
virtual void runFunctor() = 0;+ C4 S* f" |6 p% a! s
};( k7 o- w* j7 f3 T
' W0 E* o% @$ K$ P xtemplate <typename T># t8 `' v6 H s6 _3 t
class RunFunctionTask : public RunFunctionTaskBase<T>' ^5 B: A/ [. V' e
{# L. H& \5 `6 _; @
public:
( c$ x2 L, K H void run()( c1 n. p. e- C$ D$ W( u
{
1 p0 t) H7 I, E if (this->isCanceled()) {/ U/ e+ n/ x; D
this->reportFinished();
* M! e6 Z7 ^& u5 W) {, E return;
3 r9 @: F3 I1 t& g }
. C: ?6 G5 p2 V6 z0 M4 H+ r this->runFunctor();
; I; S' l5 I* w, a# a$ d this->reportResult(result); m' b3 D8 l9 y- W: D# {
this->reportFinished();) k0 w1 `. M% i5 [- {. V8 Q- t
}; Q" o; i1 B s9 Z1 o/ W" D. c
T result; |3 J* b( N) r" \3 E
};" M+ L0 a* u a& e& a
) z8 ?! z2 x3 K! F7 m l5 B
template <>7 ~9 N4 e$ O" X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>3 t1 z# f( \9 i
{
- ]9 c3 l2 Y7 I$ C2 Apublic:
7 o) |# T3 [2 X6 T' H5 r+ R, o1 V void run()0 Y4 s# a% V! r/ Q$ M
{& c' u2 f; o' I3 E3 |% ^/ r
if (this->isCanceled()) {
- K. @) v5 B2 Z/ I this->reportFinished();3 o, E/ \, \5 w5 s3 d) a" L3 m5 l
return;
3 g* P) |, t4 Z: s) C" \ }, m8 y4 J' F: i' A
this->runFunctor();
0 O2 q! T+ J1 i0 O @8 }6 L4 K- j this->reportFinished();9 c/ Q' E, {5 q- a3 @& ^
}8 I; Q9 n- i& B( ^- s1 m6 O K
};1 q1 G* _, }$ ]
2 ]1 `: x L0 U! ?} //namespace QtConcurrent
1 t! W6 _" f9 c2 t. l6 Y8 M( M5 \
#endif //qdoc' q$ Q, F$ y: u0 B% m
' D( v/ G3 n( B' ]QT_END_NAMESPACE
8 Q2 W7 b4 v8 u( e( |6 pQT_END_HEADER
( @5 G- F+ \/ n; k5 s- U: s* y {
0 q- b/ Q$ [" a1 {3 `% }7 Q#endif // QT_NO_CONCURRENT* S! k6 Z3 J4 n3 F( B" H6 K2 }9 |
+ S- v- i, M y* K" e9 a
#endif* M! K: U( W( M0 |9 u* R% E
$ U$ m- Y/ V1 i, Q; z |
|