|
|
我对syslink进行交叉编译到arm,但是出现如下错误:3 @7 H7 ]7 b' c1 w- ?* 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'5 E2 y7 E% E* X/ N6 n% F
7 `" j$ R% u" S" u1 ^& a/ w
这个头文件内容如下:
% y+ Q& H- m1 q. [+ L/ W. @#ifndef QTCONCURRENT_RUNBASE_H+ X! N* M7 w4 c5 j1 }8 d
#define QTCONCURRENT_RUNBASE_H
0 E' k# ?% g7 M6 r; s* V, l
) ~# f# ~ Z0 y#include <QtCore/qglobal.h>' O3 h6 r: t& C( Z- s" d. m
8 Y7 r X o/ L) B& J6 Z1 X
#ifndef QT_NO_CONCURRENT8 G. u- ]" j. N
0 e# }6 ^8 m' y+ @1 X1 @#include <QtCore/qfuture.h>) P1 P S4 I6 p' p! t
#include <QtCore/qrunnable.h>9 }5 M& L! C' Y( G2 w5 W" r
#include <QtCore/qthreadpool.h>
2 J4 S+ J/ H" E" u8 L5 @" y4 P! z; k$ Y6 K" ^8 \" A8 r
QT_BEGIN_HEADER
; s3 A9 Z0 M0 o: p6 U; p, IQT_BEGIN_NAMESPACE& b" u0 `; X) H; y' E
8 U6 T& P( g* f+ p% s( c W
QT_MODULE(Core)
8 L" W( w. X5 M/ W# R/ v; j7 W6 u+ i8 b
#ifndef qdoc
) m0 l1 q0 M8 `$ m/ Y5 `7 X K
4 r* K7 t$ g; bnamespace QtConcurrent {
( G& q% D3 C2 A: k8 j4 e9 P* T' d$ O! X/ j V1 v
template <typename T>+ n# n7 Q6 s& z% ~, z9 l
struct SelectSpecialization6 D d9 ?. J( |# J+ h* v
{ ]' u: `" l& X, C
template <class Normal, class Void>
3 k/ M' `2 R u; ^, `3 i struct Type { typedef Normal type; };
3 H1 ^) n0 `' r3 ~6 M8 B};
2 @. _9 C( M7 O7 x; `4 w6 \* E. { q2 w- w5 y/ n) p( F8 s
template <>
; l% @3 U9 Y( H- K0 s! rstruct SelectSpecialization<void>
3 }6 B3 r; y" Y# W+ p{
; P0 P& `1 n; |* U' Z- [+ q template <class Normal, class Void>
r8 A5 B2 G4 K; c3 P) }( o struct Type { typedef Void type; };
! d1 {3 H( y z};. S& c0 g* H5 m1 @; o1 s. ?2 W. a9 W
3 { u8 s8 U {& F2 }- d* S5 ?' W
template <typename T>
9 s7 h1 V. p* J6 h. X8 ~. iclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
& z1 \. j; R( j7 f' k5 P4 O{, t2 L( x) w" G9 ~* H1 g' Z
public:
* U7 n1 r! `' n2 V QFuture<T> start()8 c3 U% K1 Q: [7 | e& y) w8 n
{- d$ W ~3 A3 u4 [
this->setRunnable(this);( T( ^9 O" n) `
this->reportStarted();' a" X7 f- a# \4 X) k8 Y
QFuture<T> future = this->future();
- ]* G3 V/ C% n& E3 i1 i# r) b QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
1 A' Y) l f2 o- q6 H$ p( f return future;
( ^: y( [1 C# S. X! U- ~ }' G N: _( r1 u# M) Z
+ e; r1 W5 ?" l) p1 G9 L% g void run() {}
6 ~6 R- }: R% E% y9 r% k* I virtual void runFunctor() = 0;
8 H" y3 A9 y3 m9 } i5 S3 z};; W' }# ^+ X: @2 i
, v/ F& Q. t: g/ o3 Y0 O2 S$ b5 J+ @ htemplate <typename T>0 L% P, Z9 j; _5 n; M# ]; l
class RunFunctionTask : public RunFunctionTaskBase<T>/ K/ ~( m4 k( y1 M) ?2 {
{% m- p# c' W3 R; G* n7 @
public:
9 Z$ |2 \% F; B4 K void run()
) l) S1 s. G2 x( V2 d7 K l2 K5 o {1 M9 T$ `% n6 o7 D& C
if (this->isCanceled()) {
! J; F Z# T# l1 g this->reportFinished();
* d/ l L/ y0 _1 f( f* [ return;
6 C6 B" g$ J1 A" a0 ?" v2 U5 K8 R }$ J( j5 r5 s0 U8 |7 e# Z/ t9 J
this->runFunctor();/ J- L( A7 H% o+ g( p
this->reportResult(result);( r" }+ M8 {& B1 m/ X
this->reportFinished();2 ~% e& _3 V* D& G% M) t0 \5 t% v
}
; E& N9 P0 k. M* L T result;
3 v3 i6 b3 _9 H* `7 [8 x};; ]7 ?" F: r; m, j a( R0 w
$ X7 U* u) a3 |% Y0 xtemplate <>
/ \6 e- V. }- L$ u0 lclass RunFunctionTask<void> : public RunFunctionTaskBase<void>; ~, `! |5 o, z* L
{
2 \) k+ N, Z; X, n, s) H: q zpublic:
/ Y7 }2 }4 `6 N" Q+ M# n0 N void run()
" ]5 D8 q* k1 Y, J# L {5 T8 m0 h: Y& A4 k
if (this->isCanceled()) {
7 H1 [ Q4 a5 z3 q this->reportFinished();
G* n$ g$ M) P9 M( ^( O return;0 C7 v* u7 P8 {" U! Q' y2 Q+ Y. f
}( q% Z( W3 Z3 V5 }% P8 i% ^
this->runFunctor();
* e; v$ k% A. e9 B this->reportFinished();% \" |% ]/ Z. l* m
}- q" {1 `8 k8 F* d
};# s( H4 W) u$ N$ s, P7 V( N( R
1 `. m& Z' y* N! P9 l: z/ _, _} //namespace QtConcurrent B. e; i, S) Q
$ X* u. W" J( k M5 H9 R
#endif //qdoc
, |; B2 Z& F6 j/ H: C( O0 H7 E8 v5 b' v& S6 b5 H
QT_END_NAMESPACE
" H9 _. t$ M' V- G9 G, _QT_END_HEADER3 g) s/ x, l+ m) X) N) L8 }
0 t' ?: D% z& r#endif // QT_NO_CONCURRENT
! ^, y- R/ U3 [5 {+ V+ w$ ?$ V% a% W- ]9 r
#endif
- \! J% q7 M: u- m' Y. M L7 U& p
|
|