|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
; |8 ?* W/ s- F/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
0 E; L& ?) S+ r% V+ ]: c% v# A. T4 r6 Q* H$ {
这个头文件内容如下:( Z3 V+ e: @" x C/ z! J; n; ?
#ifndef QTCONCURRENT_RUNBASE_H
8 l p9 f' ^% d! K' T3 |. @; ]) P3 [9 t#define QTCONCURRENT_RUNBASE_H! A! v R5 p* _5 B7 E# u
/ h' o6 e) N1 n, ?& ^7 }#include <QtCore/qglobal.h>4 S0 `( J- y( _. f7 I$ i
/ @# I. l" D- F5 o- }
#ifndef QT_NO_CONCURRENT4 S5 ]! G8 E/ N4 k5 _6 ?3 L* B
4 I8 U! w2 U! H2 ?, O2 X: \#include <QtCore/qfuture.h>
3 Y3 N t$ e0 M; p8 H" s#include <QtCore/qrunnable.h>; e% g4 Z$ ?) Y/ R7 S; Z9 n
#include <QtCore/qthreadpool.h>9 F- n C) g j+ z2 S. B% {2 S
3 ~% N$ T+ q3 r* ^
QT_BEGIN_HEADER8 u+ Z' q( s( X5 ]5 v
QT_BEGIN_NAMESPACE& c, e5 X2 n: K ^. K
. W( T/ q) a* S9 r
QT_MODULE(Core)
; g- R; \! E5 q+ K. S# p
+ `! J+ D) _) t& o2 {$ f; G#ifndef qdoc. v; f; Q+ Z! {% `
) h9 f5 D0 K" Y1 u' u: }- K* a# Cnamespace QtConcurrent {
: I7 L/ ?- @; W B& q
. o* H2 {: y/ Q/ G# htemplate <typename T>
7 \1 }. E s. N2 Q! Z; Astruct SelectSpecialization
: z/ ?' A: x: F# n I{; Z* v& D/ a) V, p3 T8 ^0 Z
template <class Normal, class Void>
+ C/ c4 k% l. r& v. z1 c struct Type { typedef Normal type; };
2 \* c0 m, J0 J: F2 g8 q' S; H};1 m; Q- a5 l' _
h# _" S8 U0 V( c" ^8 m
template <>
6 C$ }; z) B. fstruct SelectSpecialization<void>
$ |# _- U) t" z: L6 ^{9 ?- U7 `9 d W3 l! _
template <class Normal, class Void>
* k* V) a3 d* x5 S struct Type { typedef Void type; };7 o) N4 ~( F( ]7 i5 E- H8 r
};: G3 j' }! [ o: b4 b- D, v) z
8 L3 f8 J" Q% _; \ I) x
template <typename T>
$ o N& p+ I7 @! j' Z; Kclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable+ T; z( h* Y+ n& L* r( ~- o) ~; W8 ?
{6 j; X k1 z/ E& k+ @% Z
public:0 x3 G7 T5 _3 \) m" F2 k, X: G
QFuture<T> start()) _7 H9 ]8 y, K+ s7 ~
{
& r3 Z' C, Z, X this->setRunnable(this);" a# g8 ^( t0 K6 B; a4 q
this->reportStarted();
- t; @. w$ G2 I3 a K0 e4 ^' i( | QFuture<T> future = this->future();) u$ V- G6 m4 ^) T( P0 c
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
% L' v: ?2 Y" e( S return future;
9 E% a2 H% Z1 o, s# O }( s% l8 p4 C5 }' e( g6 [
0 H3 z7 W9 F4 v1 C- ? void run() {}3 [4 q' h- h* K' l/ Q8 U
virtual void runFunctor() = 0; o) X9 V( D0 |
};- k+ p) X8 b& G# Y8 c/ D7 }
6 O) X' o, t U* y! ]2 g( U; r
template <typename T>5 B3 [9 d4 F* ~& c1 }
class RunFunctionTask : public RunFunctionTaskBase<T>
$ {& g/ e* G" I4 v3 e7 J( C+ d) \{$ o1 R6 Y# ]# K B! e8 [
public:/ x9 V+ I7 H( u( A
void run()1 V0 {0 F0 X7 z2 L# s+ D+ ]
{
7 U( n& R, J/ C if (this->isCanceled()) {6 D" |- V0 [$ h9 N
this->reportFinished();6 n2 |9 q* x" L; n7 }0 V
return;
1 c) X+ J& l/ ?& ^& v; y2 ?# w I' H }- k3 @) P* u3 |3 {% n: A2 s
this->runFunctor();
! a4 y4 ~$ Z; }+ d" Y* O3 { this->reportResult(result);/ h' g- H A% M6 l$ f- G
this->reportFinished();
# U( W2 ^6 H/ [6 h& D0 q; J }
* _6 p, h* L0 _ T result;3 j% e" |: k {) S5 F6 U B( h
};7 P. Z1 v# s1 e- B3 \; x
; o5 d' A ~1 n. J6 U5 x
template <>
1 \' K/ y" @- W8 Rclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
$ K* Q2 P* y# ~{ v. x1 H1 b& C( A/ e* B3 i/ E* d
public:/ M1 e! _$ q, a6 G- W/ W
void run()
/ G! I" h. j C {
q; W' a: U3 @9 W! h if (this->isCanceled()) {7 A/ f" C$ O1 a" a& o$ }
this->reportFinished();7 h5 y. U3 t9 Z# @
return;5 A/ Z8 h0 @( o) }5 |% l
}
' r1 k! v; w4 j9 [+ D this->runFunctor();
8 L$ a2 W% D; D4 Z this->reportFinished();
# V P% Q# K# i' x }- q/ m+ Z- s l9 B. t% J
};3 f* P# p' u) ]$ r6 `6 y
6 X9 _; o2 z0 d# L4 v2 ]
} //namespace QtConcurrent
. J) o/ K/ @" R* `/ C) m
_4 d" s/ X2 l( c#endif //qdoc& j6 m8 w2 p3 W# f
- d5 U3 s! y: u
QT_END_NAMESPACE
! i9 v% e) m. U1 W% s0 y$ YQT_END_HEADER
+ m% ?7 V; s8 ?- M# T
$ l* n! L9 v! Y7 o9 J#endif // QT_NO_CONCURRENT
8 S) F( _: s9 C, E# G3 c: u! `/ d1 O( j) m, W; B- t" r
#endif
! d+ a2 R; D6 P \
. A- U. p# L5 S. Q( Z }# i8 H |
|