|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
/ x+ C+ I. [- x/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
, T% X; e4 V/ g! Q) X# ^- h8 j; `- }+ W
这个头文件内容如下:
" L+ A, L& Q2 S& d) W* r#ifndef QTCONCURRENT_RUNBASE_H0 E! }. x+ |& V1 y
#define QTCONCURRENT_RUNBASE_H
4 Q& j# U5 j$ Y
1 W; U1 d0 q& C( D4 [; o#include <QtCore/qglobal.h>+ i9 _1 a4 d( m0 x: u( L3 r- C% a
9 D9 y7 c: `, i' T0 B8 K5 u
#ifndef QT_NO_CONCURRENT
' q2 ?9 y. r4 ~& ]1 ?
1 ~: n0 v5 h' @% V0 Y" }1 R3 j#include <QtCore/qfuture.h>& j0 z% l, W& s2 x/ o5 Q6 L7 {% e
#include <QtCore/qrunnable.h>
; J+ p3 H- y2 x" o9 `# M#include <QtCore/qthreadpool.h>& ]# ]/ E' h) X7 ^6 V1 i
K4 x: a! k0 Z! A' s* z0 A& Q
QT_BEGIN_HEADER7 k( d" s% q" O4 d+ p
QT_BEGIN_NAMESPACE
8 w+ H' @9 j# q/ Z# n$ x
; b1 n2 O+ q4 IQT_MODULE(Core)# `6 r" u+ g O" {
- ~7 ~, R* w' o1 t4 X; _6 E. p+ T2 w
#ifndef qdoc
! f. c1 K* @1 o% V# W& G' p5 E' _$ L* R9 @. W( {& i
namespace QtConcurrent {
3 i, v: y y- \+ G0 j7 I5 h
. r' }1 s% ?& X# ^8 G. _template <typename T># x2 G( h, ?/ M4 D9 n$ j
struct SelectSpecialization
1 b- Y7 D- M3 i1 d! w" D, I{
8 ~, {& W1 z0 T' \ template <class Normal, class Void>
{4 ~9 {! o; o( o5 M struct Type { typedef Normal type; };
- Z8 t+ ]8 N9 ]};8 ]8 U& Y: i) H& O- h
' Z5 f9 p" m8 Z0 J8 W Utemplate <>* f* i0 s5 s4 k6 E* E! u
struct SelectSpecialization<void>
0 ~" ?: x; T9 l) C6 P' L9 O, r{( D/ t, a! i% K# J$ q" b/ Q
template <class Normal, class Void>. o# t4 J5 k" Z6 G2 p# A1 Y
struct Type { typedef Void type; }; c; i( m/ w. T
};
) q; a4 i. y* J
9 w# u7 Q+ b9 }/ Vtemplate <typename T>
2 A* y F% z9 k+ T& R2 Fclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable6 x/ u3 e0 }( Z: G$ ~% A0 r- x9 T
{
, [0 L+ X, b! O" P$ _$ ppublic:
. ^/ A! x9 p* j QFuture<T> start()% K1 u+ a# q3 B( t% ?; Y
{
; j$ S" l4 {0 k5 G this->setRunnable(this);0 i2 H$ Z" r$ x, J& @2 m! z
this->reportStarted();
% x$ Q, z$ i6 V( a4 ]' T0 s QFuture<T> future = this->future();+ c9 P/ G" A! d% P* {
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
* `( U! F& Y3 n8 j return future;
& g* [6 `+ a* P }/ S# F9 u. l) K x# C
8 N0 W8 m9 t: S/ ]9 n
void run() {}9 E+ L/ J7 `) P+ s. S( u
virtual void runFunctor() = 0;3 p8 R2 T7 D+ l: Z& N
};1 Q' }' U) y7 W1 E t- \* g- E8 o: J
4 c: G0 { {1 K+ T; g6 @template <typename T>( v# ^. @3 q5 X5 J, @; }
class RunFunctionTask : public RunFunctionTaskBase<T>0 q# P$ ~! V- A3 Y. h0 ~7 b0 O
{( ^( s: D6 R! i- F0 T& r
public:
( V4 n I4 t+ k4 N9 I# `; H void run()
3 o6 ^6 B8 L4 P' H, z {+ X: v: R2 Y7 L7 M3 [
if (this->isCanceled()) {
; u2 \# q: ~& D# |4 L this->reportFinished();
. X; Q% I2 F; J0 f; v return;, o) e- X2 a& C2 \" i0 F
}, c7 v3 t, n2 r F ]% j
this->runFunctor();
+ g5 z: e: h) y/ f# ] this->reportResult(result);
: y& q" N# Q, E! S" X this->reportFinished();% a* ~4 ?" l% O& P! C% \ K4 l
}3 S4 ]# v7 {! M% j3 W
T result;' Z! L* D. j) Y5 j1 J
};* V1 k6 S2 s+ E+ k$ ?
/ I9 k! y/ _* G# c
template <>
0 t! \; h4 y5 @) Vclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
! E0 P' O4 d+ F% `, b/ D{
2 A; M" R/ @) ^* P z) spublic:* Y0 r, W# R$ t+ w4 w4 a
void run()
" D6 n+ D4 f) }) H {( E% A {6 I/ Y/ n* g; v3 r% @; }
if (this->isCanceled()) {- G% b' d- N6 M# u6 N/ F; y
this->reportFinished();# c3 l0 A- G6 z" J+ H
return;4 ^: P' V& |4 E
}; m7 R7 ~ ~) a G+ V7 {- @
this->runFunctor();5 ~# n4 S# ^" t6 C) J$ |& p3 D) ]
this->reportFinished();. o7 u! A3 S9 b2 t1 P0 T" ~
}
" O+ K2 \3 E3 g) P# c6 d};
0 P. B; D* P E: @; e' B
) H% j5 `2 V2 c3 `7 O} //namespace QtConcurrent! J+ g. J2 F2 D: x h' n/ E; E9 ^
7 D/ K( W! Q) f2 `1 _. L
#endif //qdoc0 m' g8 k1 |/ b$ e
; v( k+ T5 Z* k4 k( yQT_END_NAMESPACE& z- f6 Y6 k) s, q l4 j' R
QT_END_HEADER* m) n# a: V9 t6 \2 ^* o \
- ~6 @$ B. y0 n$ T8 h* g
#endif // QT_NO_CONCURRENT
: m3 Y% S; R$ G4 r
9 B) \; L. y1 ^& m#endif
/ Q- Z. O& @, X u r' s& U9 E& w
I- |: G) j; u" M/ X9 o |
|