|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
! x2 T; s3 W6 l$ D: j/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
/ N4 p: V3 B+ S8 p$ B; ^3 u( \7 \, I) P3 O& N! X) S9 P; e$ a
这个头文件内容如下: Q& o& o) f. q$ R
#ifndef QTCONCURRENT_RUNBASE_H
' m G1 L, g5 N2 L0 _#define QTCONCURRENT_RUNBASE_H
% p4 t1 L1 i ?: }8 j# S% w( \; |* w3 a! o( [7 M1 F7 T
#include <QtCore/qglobal.h>
+ U( r2 z( D% k
- ]- s/ a/ {3 W' B2 D. _#ifndef QT_NO_CONCURRENT
+ H7 V- }+ m& d; S& I5 C
" \5 H) A6 s h b* ?8 J1 `#include <QtCore/qfuture.h>& M( ^- i' k" {: E# p. T
#include <QtCore/qrunnable.h>
" n2 {9 b& N _$ y h M#include <QtCore/qthreadpool.h>% j w3 M8 x1 |. o
4 q8 s9 {" z7 ?3 O
QT_BEGIN_HEADER
' `2 U% ^8 b' a* A k1 [QT_BEGIN_NAMESPACE) b, \! X" n6 L- a! ?4 b
- X$ s* b$ V9 R9 p( E& r! l5 _
QT_MODULE(Core)
* r. [+ D; i6 S* g& r' [
9 `, E3 a% O- r7 @#ifndef qdoc$ r( r( G. n% g5 Y
0 t) e8 p7 H9 b, |7 E
namespace QtConcurrent {
" ~- t0 }: O( p: j' K( o, p
1 m4 O& ?; {4 X8 T7 o( C+ }template <typename T>
* ]- N- p) V3 [struct SelectSpecialization
7 L! {1 R2 C; \4 T0 Y$ H& w{/ c8 q% U2 Y, m$ e
template <class Normal, class Void>
* V5 k# e/ k: K struct Type { typedef Normal type; };
2 W! o2 e$ Z a1 \};; W& ^+ l! r. p! h) Z- f
I- n) C- A# p7 H8 ltemplate <>
/ \; ` l( t2 e; v ?5 d kstruct SelectSpecialization<void> |8 k, @2 C' l5 B
{
: n' ?8 Y" s* O# Z template <class Normal, class Void>: _! ]0 V$ S$ N8 T& o' P
struct Type { typedef Void type; };1 T" c, g& J6 n3 C! M. O$ M
};" e R0 X6 g* d
$ O3 R0 e9 U* }3 f) x5 X
template <typename T>
" Z% c8 y" l' Fclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
& o9 I7 h: T ?- B$ B7 M+ ^! E{. n8 J) a+ Y( ?
public:
4 q& c( W( L4 }. I QFuture<T> start()0 k. G8 F0 W; a* S
{( u% V$ v$ @. j6 E8 Q( T1 u9 X
this->setRunnable(this);
/ D# w. A; \0 G& s this->reportStarted();
/ a z8 X A* ? m0 Z8 H QFuture<T> future = this->future();
( y# y9 D- L8 T* F QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);% b' I3 A6 ^$ M9 c/ S: n
return future;
) a5 W; o* Z* F- r0 p+ y1 U. G- R }
( v& K; R7 Q% v) _1 J; [2 q# w* H3 \) y) o( Y+ r
void run() {}" P' F3 P7 x r& P; ~
virtual void runFunctor() = 0;
0 j+ w$ X' q# _8 O. b};2 z. l' {$ M) z
( g4 F8 V8 X" B" A0 @- p2 wtemplate <typename T>
1 {: U$ i2 M" I6 w! C0 Vclass RunFunctionTask : public RunFunctionTaskBase<T>
. A* i/ ^8 E0 M' c' s/ C7 [/ ?{3 E2 \, ] i/ a
public:: I7 o) }, R W' D& X
void run(). j8 y2 v/ L$ `; x
{
1 @" T. h4 n% T' m- C if (this->isCanceled()) { z' R3 W. `1 m
this->reportFinished();
3 f9 R% o+ d2 a. V! M! f0 e6 x return;) \2 `6 \/ ^/ H# I" L* i! [
}( k- U6 E6 V9 Z4 m! h' z, G. O B
this->runFunctor();
# K6 ?& L) O d# T' R9 I7 b F this->reportResult(result);: V% G* N& }# r
this->reportFinished();
+ o; \4 a5 F* h4 D: ] }; O \+ u/ L( I2 H
T result;1 l/ z5 K7 @: O4 b
};
: O' b& l- P& |6 L w) e6 Y& H7 ~) v( b2 |( ~
template <>/ f4 E- j! O: E' V1 V
class RunFunctionTask<void> : public RunFunctionTaskBase<void>2 }, s! x$ F- v
{
! T5 B3 f: N* f& [ cpublic:
) \/ j) X. C2 \( I7 K void run()
2 s( M# r7 F8 {% P7 R8 D {
: s0 T; S$ ^3 g3 e- _; }, t6 W if (this->isCanceled()) {, X7 n- |: O' ~) \5 O9 n9 d
this->reportFinished();6 ]6 z% z6 D3 n* O* e
return;
) h6 h- D1 i3 C# Y7 ?; t }9 x' Y6 I+ k( b) Z- i5 T+ }
this->runFunctor();
4 x* q: }+ _* B7 v* ?/ r this->reportFinished();9 M7 [. I! m2 A# X) b9 k
}
, [8 U8 `9 k8 }0 A};& k& T- G, d; U& f4 Z# x
5 ^* D" @4 l1 R- l& _+ R} //namespace QtConcurrent
% w- j5 |- }; A' ]# f* o/ j9 l% ~" ~
#endif //qdoc
6 f. l! H$ \' d2 ~5 G7 t; U/ o7 `6 R3 ]
QT_END_NAMESPACE. J9 v& ~( j* q$ P4 s' l9 i. l( ?
QT_END_HEADER1 E( Y3 @+ V+ c& j+ A- D( V
3 c, j# f2 A4 ?* v0 y( R
#endif // QT_NO_CONCURRENT
9 N9 m' C: ?* j$ p
' O. V1 [7 O3 c) l#endif$ f5 L7 Q n7 B, z- F6 w
2 S( z5 {; e8 e |
|