|
|
我对syslink进行交叉编译到arm,但是出现如下错误:' K/ S& _0 i! l# o3 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'
3 G8 J! k: D9 l5 d8 P2 ]. y$ r/ E# w( z/ M- B* R: C
这个头文件内容如下:7 g N- P; \/ } N7 u) r' V$ u* ]) b
#ifndef QTCONCURRENT_RUNBASE_H* _4 x9 c4 G) W
#define QTCONCURRENT_RUNBASE_H
" ^0 r5 |. q$ ]2 k) s- W
, n d- }. J( X, V$ y#include <QtCore/qglobal.h>
$ l/ V8 T; L. a0 x% q+ b2 C* V! r& r2 P
#ifndef QT_NO_CONCURRENT
! I/ s0 L2 S1 N3 Q# T0 K. g
$ E% Z, {# q! d+ ^#include <QtCore/qfuture.h>
s5 g( D A' m/ z9 r7 Q" U#include <QtCore/qrunnable.h>' W4 R4 h; q% M1 h0 ^( H( Q' u
#include <QtCore/qthreadpool.h>
# g! z4 a$ S- T, g: J% Y8 Y: k/ j2 D' U N
QT_BEGIN_HEADER
0 R" X5 o& }/ p4 v# Q3 R3 IQT_BEGIN_NAMESPACE
: m- Y" Z. ]6 }2 ]* n8 g% Z
" h0 m4 j0 c* g: |QT_MODULE(Core)" i( I( J) J" i6 x) e
6 B V8 L- W; g, ^% k) B#ifndef qdoc
0 F* _4 _0 I4 [% k1 M- O
' H6 q7 L& K3 ?/ wnamespace QtConcurrent {
: |; t8 I, J# Q. P8 H1 ^' F5 \' F/ s$ d
template <typename T>6 `# Z) m. {, \1 k* p
struct SelectSpecialization; B3 \& o9 U. G
{
( |0 }1 N3 O0 B. b1 r) N template <class Normal, class Void>2 Q1 G' Z3 N% ]) o1 B% i3 v
struct Type { typedef Normal type; };
1 Y! l- D, t# p( x6 p};
- z3 o" ]- r( T5 j) b; ~' V
2 u1 q' {. q$ V' g2 d0 E7 Xtemplate <>/ E$ f6 l' l$ h3 _) t {
struct SelectSpecialization<void>
% H3 i% ]8 ~* ^: K4 T' D( \{4 L8 A: h, ^8 P6 M6 n
template <class Normal, class Void>
" ?0 _. s' w- { struct Type { typedef Void type; };
5 _7 T1 U4 Y& I; t' T};
7 ~' C) V7 C8 D, ~0 }/ k
7 h C6 H" f9 B+ {: }' ^template <typename T>
; q5 k( x$ c1 Z$ y; m) L [/ o, cclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable+ ~0 E: E5 P" g4 d1 @. t7 d
{" w. }. F G& i) B1 t; ]% c8 j
public:
9 i2 F w3 p; S% h# t QFuture<T> start()
8 `! I; }, m1 E {
% X( Y. Y8 P; {) J u/ D: a- z this->setRunnable(this);
1 I* i' o/ U8 `0 P1 {3 T this->reportStarted();
4 R/ ?/ \) x" x: f4 G QFuture<T> future = this->future();9 @5 e& r, b5 K9 x% [* Z3 b
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);3 R+ {+ ~2 R1 a; z; d- Q
return future;
, ]7 `$ W6 f2 h7 Z }8 p' `& I( U* V% v" g- a
+ a- T; }( p; D7 q4 _; [% S" `
void run() {}* s' D) V: {/ D; Y. }2 n
virtual void runFunctor() = 0;+ ~2 g3 l. W& l% |* N0 F
};
Z4 N5 }/ n" r, x }( {' L4 R) c
" u& ?: Q0 z' D6 _# Q+ [9 _template <typename T>
3 _% F- E1 L; |1 eclass RunFunctionTask : public RunFunctionTaskBase<T>
' V9 X! ` }* @' g; ], Q9 D$ [{
( [) w1 B5 e& R& T3 ?: `4 g4 g) p. ipublic:
/ j, e3 s. F, ?# Z. m( i0 S8 L void run()- ^. H3 V# S2 S8 o9 @5 _ a6 P& r
{
( a$ V9 ?' d* E if (this->isCanceled()) {
7 e( m: p8 a8 l/ {# \ this->reportFinished();% N! b! ?8 u7 i# l5 W$ _
return;# x4 |6 U: @) o. Q8 `# ?1 B" `
}
$ R; {0 [6 S8 j this->runFunctor();
" \. F! z! k3 y- _7 H this->reportResult(result);
* |- e! E7 S, z- X+ M& @& F this->reportFinished();( c* ]* W. v+ u2 H9 U
}
/ P. x5 x; x2 c T result;
4 R2 Z1 ~* j/ D: \( ~5 ^' l1 u \1 T3 ^};
3 V; V* f" X- z! a* _3 ]
% @1 n$ [& x9 htemplate <>
! k( H) b$ Z ~" Qclass RunFunctionTask<void> : public RunFunctionTaskBase<void>2 p2 G D3 `! `* d9 \
{: l. L* k/ f! G# l" k; i( t
public:3 z! }6 l! j* p( y* D, l: E+ @
void run()
7 A( R$ b+ R) Y" z5 ` {% l E" X# D5 Z3 s# ^, C
if (this->isCanceled()) {5 ]! s& D5 `( h5 X- g2 _2 m \
this->reportFinished();
( Z+ X0 r( Q5 r7 f return;
! P p0 L0 C4 P, D1 w) {. S }( M) m$ G( H. j @
this->runFunctor();
; f: c( |$ }5 l0 d E2 z this->reportFinished();8 @' s- n+ z, V, q: i
}$ a5 ^# r2 P @$ t- y
};9 W3 l$ o" Z- w4 k" x, J
0 U5 v- i9 Q. j8 T+ c3 J: U} //namespace QtConcurrent4 @: A Q2 ?: G
! M' h" h& P) t7 `0 S#endif //qdoc: x- _- q* m' ?' J
5 |7 ?! K' e; \/ ~4 {
QT_END_NAMESPACE+ N) H. S/ j o# S: w3 X
QT_END_HEADER
; k' S7 m8 e B* g9 v4 V- y! `9 F, W1 o$ Z& z
#endif // QT_NO_CONCURRENT
+ q3 |$ G1 G) R9 j2 R% o3 v$ n( o9 G: g; s7 u
#endif( f7 s9 O1 N/ {2 ~- [" K
$ q# c" V) N; d0 F* `/ v' R" F8 N
|
|