|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" U# q* A: R* O" B; w7 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'
& e [% g. I7 h& |0 G+ g b3 Z4 k# d$ |+ x5 _( X
这个头文件内容如下:
# U$ I5 M' |9 ]#ifndef QTCONCURRENT_RUNBASE_H* W- Z( I4 M( Z) k7 a
#define QTCONCURRENT_RUNBASE_H3 m6 j. w1 h( t5 K
; C' r4 `* w9 d+ M
#include <QtCore/qglobal.h>* O% c7 A* _* q
: O6 V% @' `, s* J3 ~1 S#ifndef QT_NO_CONCURRENT: T( [' a; e+ D# t3 P
]) i' x+ A* Z; \+ }2 G
#include <QtCore/qfuture.h>
8 I# A' i& c, s u2 _#include <QtCore/qrunnable.h>, r0 [/ r$ c+ ]
#include <QtCore/qthreadpool.h>. x8 |! [" c* X% i/ k
4 c- M; R0 C( ]$ C
QT_BEGIN_HEADER
`% n7 @: K& C# f) sQT_BEGIN_NAMESPACE0 o6 n* U- J9 u! X5 x6 @ D _9 E
$ T* i* d6 U0 S! M4 D; ^QT_MODULE(Core)
( j& F. I6 V! R3 ]
$ J6 g/ S" m& ]" g. X' s#ifndef qdoc
& j5 e+ D; {$ r; y" H
+ W2 x/ u6 T! f* B1 Y: h" _namespace QtConcurrent {2 m9 ~3 D8 c( d% b9 N
" U" e4 T4 G( E/ L+ ]7 P! D; B0 stemplate <typename T>4 T3 N/ l: \6 k
struct SelectSpecialization' y$ f$ r& E1 J/ Y6 F% V( i
{
% `5 M! u: ]6 C2 Y0 Z3 w/ q template <class Normal, class Void>
- L+ h/ @" e( B4 h, Q struct Type { typedef Normal type; };2 T1 z' c* \8 t; V! U
};9 J' Y0 I4 H8 t+ C% E: l5 A
/ T5 {: d" L3 r* ?( n# ftemplate <>
5 u5 x7 c, R( z. g7 i! d0 ^struct SelectSpecialization<void>
. C" U, B7 |$ F8 @" t{
/ U( g- n( o: s& E: F template <class Normal, class Void>* m ]! f# l: F- j$ S
struct Type { typedef Void type; };4 ?. @4 |8 Y& j+ |% V; p+ a
};
# M' _* C: b% P- k" R! \: `7 l9 F1 F, R2 ?. K8 N
template <typename T>
' S3 M1 E, Z8 ]+ g0 _, d# yclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable4 N6 E& p' J5 U
{8 K5 e+ Y' G2 {: _, I. }
public:& E1 Q9 I4 c! b, z0 N
QFuture<T> start()
; n+ H; @- Z, [ {
2 X! E* M1 I6 f* a this->setRunnable(this);5 Y7 B, n7 m) Q k3 a, G" o4 z
this->reportStarted();
* I, n+ r% V' K QFuture<T> future = this->future();
: e( {; ` Y2 A8 W& b( ~+ {) X QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);$ }4 @' C. B. R- Y' m, d
return future;% p5 k7 q; @6 ^) E1 D
}- ?; J3 x: ?* W( L8 t6 u( s& E. R0 M
' Z# U8 }& ^7 Y) E& s5 |
void run() {}
8 b1 @) X! P! P5 F virtual void runFunctor() = 0;) Q9 i% n# g3 ~' v
};
$ n; E/ O0 w% Z! r& T; G8 P* X5 n" ?$ @8 K' i& l! M4 u
template <typename T>, q# T2 U* ?% C/ }4 r
class RunFunctionTask : public RunFunctionTaskBase<T>7 F- S/ V& v- p4 m
{7 G/ y: e5 x* A n6 ?
public: |" {6 B8 s4 S- q8 X3 d) _- ^0 x
void run()
6 O+ {9 N/ l- f. A# e {
0 ?& b0 q: B) M6 D* x if (this->isCanceled()) {
- v( J- r. `' ]% z1 y2 l+ _6 ` this->reportFinished();: b% H' n8 L( I3 Q
return;. ?) Q5 g5 q' l% y
}
8 m8 D% {0 q) w, ]* Y this->runFunctor();. p9 e4 ?9 B2 \# F( O- |
this->reportResult(result);9 G$ c! C9 _: Z! q$ `- I6 }
this->reportFinished();
0 J" U( Y8 e4 W) W7 Q, L }
. U" V8 ^% A& E5 Q2 A T result;+ ?: f) {% {5 r
}; y' C& L0 Y8 A# [6 J
8 }( P2 X/ y6 l7 E6 g0 d: J- i3 P
template <>
9 [" ^4 p$ o' P! E9 F# |' Nclass RunFunctionTask<void> : public RunFunctionTaskBase<void>% P4 v ] P; g6 r+ ^! |
{
+ f# m* ?! }* @+ e$ Upublic:) [! Y: T. J: P/ {5 [& Z7 Y- V* `
void run() ], V9 y+ z" g! p% x
{; w3 S; }7 T- a l
if (this->isCanceled()) {- }- `8 u& t% i5 A
this->reportFinished();
8 t& a' B! L; j* y: v W return;
' F3 L; Q; w9 D k1 s( Z }# ~, b% v. y4 M* ?+ W) K
this->runFunctor();% I/ ]- e- H7 s: c* @2 k, b
this->reportFinished();
6 A6 s: e8 c, m& I9 M; m& R }
% d, H. B, P! s1 T7 X& F2 {};
- q: I( F2 D4 Z. e8 {8 r% |2 D. o* \5 K( a: W
} //namespace QtConcurrent
7 d7 u$ _8 ?7 h( q. I' n% K% p! Y2 i) m) a; I
#endif //qdoc9 {; i' T8 x' \# x$ g1 F) T$ l J
! v) K* X/ @1 S/ F
QT_END_NAMESPACE
2 [. f- L- S+ ~, s) O0 q$ C" k+ FQT_END_HEADER
9 S1 }0 l( P1 B( ?5 C
# B" R& q$ w! u* t* h/ n/ H( m#endif // QT_NO_CONCURRENT
5 l' k! f/ I- `! M# h
. x0 N. }1 {8 W2 \9 A7 p#endif6 a. J, l' z7 v1 }/ g/ K
+ {8 E2 Q- |5 \: T- A) E) N8 u0 C |
|