|
|
我对syslink进行交叉编译到arm,但是出现如下错误:+ i* H* E% j% m/ r7 m+ W9 c
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
. j2 j& O2 g; P+ ]; F9 X7 K+ ~1 Z6 P
这个头文件内容如下:9 N0 h. P( v' i# k3 s
#ifndef QTCONCURRENT_RUNBASE_H
8 G @7 e$ M& G: e#define QTCONCURRENT_RUNBASE_H5 }4 a; K( U( s& [. l$ k! V7 O
; R: w2 b7 M- |4 `* o
#include <QtCore/qglobal.h>
+ s( d2 V& i i- q/ E
6 b" K) k. R4 r& B2 [#ifndef QT_NO_CONCURRENT5 G( b7 Y' s( M% f/ z* B' L
% W# h: P! r7 S1 v( t& V( S9 K' A# K2 q) M% A
#include <QtCore/qfuture.h>% ?) ^5 r: S" \) r4 q( U0 E
#include <QtCore/qrunnable.h>
. A1 w1 ?9 b6 x' a#include <QtCore/qthreadpool.h>) ]" O5 x5 s- r1 a* a
8 \ C& ~; R& B3 \+ d/ oQT_BEGIN_HEADER
& Q0 Q% N* H( m4 ]QT_BEGIN_NAMESPACE) ~. n7 x8 _1 u; h; e' |! V0 T
2 p. f4 {' {, i( F% G Z
QT_MODULE(Core)0 B$ l {) R I2 p: a4 e5 B: G6 J) q
4 E. O4 a/ i1 q8 E/ R4 @#ifndef qdoc
, K- N* A3 l+ Q: F: K
5 {7 ~, Y0 D! N6 _: m/ B( e- Dnamespace QtConcurrent {: k6 j' S8 P% {* `+ ?) i6 |7 F
" q- B7 a: S' ~( ?0 v
template <typename T>0 T9 t7 y; q" [5 c
struct SelectSpecialization
9 c, b; ^) E' L; T{0 \! J0 x1 Z: J5 f! r* f
template <class Normal, class Void>
& {5 p" T6 l0 }. X. `: z struct Type { typedef Normal type; };, V% D' ~ i/ ^3 F; z8 F! {0 N
};0 U/ |# w |+ V( P& ~4 X
2 q" P+ S6 X4 J f1 s& k! H
template <>1 E, p2 Q9 X* Y6 Q& |+ ~
struct SelectSpecialization<void>
0 h8 |7 l. {* A* r, X{
7 z+ X; R4 K6 [: `6 `$ c- ]/ I template <class Normal, class Void>
! |- x) t9 h n) d# ~ struct Type { typedef Void type; };
2 D, H0 V' W" ]2 i0 `};1 _5 Z, M" N8 i/ J4 P; |1 U4 a0 P2 \
6 u9 r! p2 O- H' a
template <typename T>
1 ]6 T* u; s/ k/ uclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
3 l A2 h8 `3 J) m{
" q0 Z1 k7 N3 m4 `: j# Npublic:
, I, C/ W4 J$ }6 N1 h4 |: z QFuture<T> start(): {6 @/ i' q' {, F8 {6 U
{
7 w9 s& k; e- k# F& L1 C5 {$ G! N9 D U this->setRunnable(this);
, q6 X' s+ _/ ~1 ~5 Y; V1 H this->reportStarted();2 ~' j# p3 N5 v4 m
QFuture<T> future = this->future();
9 T/ X2 v' d4 N" C3 ^4 x7 ^ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
8 _+ X$ U8 X. Z& {8 x( @' ]" |, A' F return future;
4 o0 u7 v5 w. v* B, n }
) P6 X( O& k, {+ o6 X) r0 l
. B5 @) T$ [$ F% U' n4 S void run() {}# n# Q! X/ I4 {
virtual void runFunctor() = 0;# w" |; \. H/ g- m* A1 \1 u
};& k" |" V/ k) {
8 I( e/ a9 ^! G" U9 q- v* t( Gtemplate <typename T>7 O; j5 l* P4 D' ]% _8 n9 b1 b
class RunFunctionTask : public RunFunctionTaskBase<T>2 u2 g+ E$ |; @) Z
{
! e7 t1 p7 Z1 w6 E' I. Kpublic:) ?6 y9 X5 U' J, l8 b1 Q1 l2 U
void run()
: E. R2 j- ~+ }0 {7 A {! z0 I; ~0 t' R2 S2 k
if (this->isCanceled()) {
$ f$ y" b8 ?: b8 N$ [ this->reportFinished();
' }& n1 k2 t& v- I! d return;
( h* U" _+ u+ R }
7 z( Z4 U2 P) V7 ^ this->runFunctor();4 C: f% D6 G. c1 z
this->reportResult(result);8 b3 s2 h- C1 m) E
this->reportFinished();; [+ _5 |# h4 d1 M% h! R
}
- @) G6 n* B2 W0 @' ^" T T result; A# z3 |- C: t g/ |
};' j, c9 [' ~* X' f0 H3 x
8 Y3 y' ? b* i: ^" _template <>
2 m: t! B+ k4 b# P# iclass RunFunctionTask<void> : public RunFunctionTaskBase<void>* O/ e1 s) J8 U
{% h6 ~: ~4 N* d% }( z
public:
9 h' n8 I) F) s void run()
0 D% a* |# x/ _ o0 q {- \2 v d. l$ ~$ v% \
if (this->isCanceled()) {
4 t5 F3 v, V, \* W) K) O* C$ \ this->reportFinished();
# {) s" g9 q9 {8 o3 m return;
3 _# u/ G8 R7 L" S/ L }" p+ T1 ?+ g5 z, K: Z% f
this->runFunctor();/ b, O$ J6 B( g1 V" |5 B% }0 |
this->reportFinished();
6 H5 f* z- |0 Q* C1 X: f+ a0 j }4 v# H6 a7 p/ z4 |* |
};
; T9 U5 b e! e0 N" V9 N4 Z3 z# _: t: B c( R9 w
} //namespace QtConcurrent: R6 D' U* ?! _& T1 g% T, ?; o
) `" T& @7 v& G. {#endif //qdoc. a7 v& R; ` t. N
3 f c) I# H, M
QT_END_NAMESPACE
5 I8 D) V: H7 ~QT_END_HEADER+ ~* ~/ R3 |) Q. z
: B8 S3 J- F3 o5 O#endif // QT_NO_CONCURRENT
/ @" n' N% D! C9 W
2 K) I$ M9 u4 ~) }' w#endif
J; n1 N) ~! Z5 E8 y) O+ q$ ^' |2 f; V0 ~
|
|