|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
. T- A1 l. t: O' s9 G: m. W/ E/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
/ i9 c5 ?9 S3 z- s" ?( X4 f2 x
5 Q _: ]. G& n9 y" Q/ o9 u) M7 y这个头文件内容如下:
" [' C4 i, ?: a#ifndef QTCONCURRENT_RUNBASE_H) `3 Z* j9 H+ r- T
#define QTCONCURRENT_RUNBASE_H8 Y+ u1 V) L3 C4 ~! i @" |: f
# m6 ~0 Z* W0 S: \0 |#include <QtCore/qglobal.h> o2 g4 ~" U5 {$ b: f" J
. n* V8 Z# l- E- Y#ifndef QT_NO_CONCURRENT
- e( A6 n6 C; n9 Z5 d* S y$ S5 r0 v8 K
' ]0 ?- J* ?$ n#include <QtCore/qfuture.h>8 r1 i6 N, l+ R1 p9 B$ o4 w; G
#include <QtCore/qrunnable.h>
+ |) \6 n" F( y X* ~) i% K#include <QtCore/qthreadpool.h>8 {+ ^4 j4 N1 e2 G; @
* Z/ N4 p* O d- ~; P, a; t6 C9 [QT_BEGIN_HEADER1 n9 X6 x' S* q1 \5 G0 u
QT_BEGIN_NAMESPACE
5 V( r& B% F9 `5 t% S+ P# Y/ |# o" Z. ^1 H
QT_MODULE(Core)7 p6 P/ I- |* H) ~
5 R8 T, U- d. u# f
#ifndef qdoc
0 A, v, R6 G7 b6 ?, K) J+ Z# U3 w. L6 n" T8 E. A
namespace QtConcurrent {
2 L7 N2 z; G4 l& O/ U: G- P7 R9 v" v0 o6 x3 H9 [( F! t
template <typename T>
& j5 F5 b) P4 f8 j! F+ h. ~struct SelectSpecialization
5 B N+ b8 B+ t+ d! s* p{! u$ g1 @+ h" @' N- }( D: W- O
template <class Normal, class Void>2 s2 ?4 y+ b3 q4 w: X2 I
struct Type { typedef Normal type; };
1 G: l4 H) ~% I& }: h2 G};2 u0 Z/ _3 @0 j4 ?% Z' P
\: u3 v/ q) f: b' A# Itemplate <>2 m8 C+ v8 R: [5 S/ q
struct SelectSpecialization<void>
6 T7 S w9 e0 H4 g# Z! G{* @: P( }6 x, J! i5 V
template <class Normal, class Void>
* h' k) j) V# D( `) l( a struct Type { typedef Void type; };, E- T2 l( S. ^4 L3 h5 v- u
};
4 E0 F: ^/ w; o0 e+ E* r" V2 Z6 @2 e' v' o; e
template <typename T>3 a( @) K- x/ v: j* O& l* ?
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
* P! M: W: q& ? {" K8 ?{
/ A4 t$ I6 f' \: M/ M5 dpublic:8 ~, W B& N g8 H E
QFuture<T> start()
1 g) G$ `6 ^- k0 Y% U# D {0 Y: x4 c( G, N" r
this->setRunnable(this);
1 V3 ^% Q7 F& F: p4 J; T this->reportStarted();5 v9 v/ c" y& i; g! z( j
QFuture<T> future = this->future();% l' J' j* x$ v
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);4 ?9 M& E5 E% Y5 X
return future;; X" X8 m5 m G! h! w% \
}
# B- m" P$ G# f( s' g. `0 \7 Y1 f4 i- u: W
void run() {}4 W* i& U: j3 M: R
virtual void runFunctor() = 0;
- n) X$ ]) [7 L6 [};
+ H% G& H5 w1 h3 E' @6 o- y3 z, k% F5 d
template <typename T>
! o# I, n- x% p" V, _* eclass RunFunctionTask : public RunFunctionTaskBase<T>
2 z0 D. {. N7 f{4 j8 k0 X# z) m8 J
public:& x/ ]" A: c* H. ^& ^3 B0 Q3 q
void run()
; ]4 n9 n% d u; l. X& B {
* M8 p7 [# T( E; ~4 U+ ~ if (this->isCanceled()) {
( c- ?* L0 u) s$ H2 X this->reportFinished();# X+ w4 F/ o6 f; V5 n" ^( w
return;- l8 t5 H. b. A) {
}
& x2 t. [1 _+ Z' r5 O9 N4 r+ C this->runFunctor();
7 Q; y* n5 ^' V this->reportResult(result);
2 i/ H0 g" i8 o1 O2 }5 B this->reportFinished();
9 {- \* U! h) H8 V) y* w }
" m! h3 F6 n ^8 D) I3 H T result;
7 B C' [+ R; V8 ?: ?& g2 d};% s# G4 Q7 n! d1 G9 x2 X
- z; W# n, f j: R; j4 x( p. Z4 }template <>3 \$ {9 W5 N1 f6 f& N# X8 H, Q
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
* W* S: J* l$ f" @, _{
- ~* ]1 P( \; Z" u6 `public:
+ @& @6 N/ ]: b5 P$ [ void run()
% q/ G/ V, K; T {9 b- J' N9 F S/ C! q& Y
if (this->isCanceled()) {) H$ G: k4 [4 A5 y* [- f
this->reportFinished();# B3 \' O; O, |# Q
return;
/ {+ ]2 R- j5 d1 d0 ~% H2 D! ~ }, l: v# J2 p5 e1 m/ i( u* L9 R( d
this->runFunctor();
4 j: O* e) Q- d& H; x this->reportFinished();' s2 y0 R0 [- g" E, T* |& K
}1 e# b/ h& S1 }$ K |
};
5 y% F- T7 Q/ `
% M1 j c! D7 n+ C! a2 w6 Y, b} //namespace QtConcurrent
/ u- j- N7 H3 { K3 I; g) j6 E, D, H( g/ E
#endif //qdoc
8 j. Q0 @2 a. r9 T/ w2 M5 N8 G0 s; r6 Z2 N) O! T7 a/ [! p. o( W
QT_END_NAMESPACE
: T, [) E) k4 N5 G/ P# ~- aQT_END_HEADER
" W: Z W- ?! k8 z! ^7 L9 T4 O/ j
#endif // QT_NO_CONCURRENT
: g# _' c$ q9 K; R* d
" ~# ?* T! i! E; h" h- B#endif9 S6 R3 b' ]& M/ R* g+ S
; m P; L B) j) @ b |
|