|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
$ v' c6 p: B( y) R* ?- ^$ m6 A/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'$ W7 a# e' H1 F0 U# z6 J) P2 c
- W S$ O8 k- D这个头文件内容如下:
9 p6 U! Q& H+ O6 i- x#ifndef QTCONCURRENT_RUNBASE_H6 R C) h& x# {8 z% G
#define QTCONCURRENT_RUNBASE_H
2 g0 w$ n2 B' s0 {4 M0 [2 w4 C' d3 u% B5 ~8 y, t0 r! N# }
#include <QtCore/qglobal.h>3 w' z: E* c5 U8 k: [& u5 c2 U1 h
2 @6 Y4 B R( M- O' c7 c% t
#ifndef QT_NO_CONCURRENT
d. z4 |+ }' u; t. ~2 M4 i# U; U3 j: M5 y; s; W) W. V9 c! y: y- b
#include <QtCore/qfuture.h>% X* |9 e4 a/ ^; p0 N
#include <QtCore/qrunnable.h>
' e' T4 a; E5 I#include <QtCore/qthreadpool.h>. P( ~2 `* j) p9 u( k* x
) E" u7 X8 g e$ V& kQT_BEGIN_HEADER, p& D1 A3 z; s' K0 W2 x( l
QT_BEGIN_NAMESPACE
3 G5 l0 C( x1 r: c5 x: P% Y7 a7 ?
8 L4 n5 Y+ O$ }QT_MODULE(Core)0 V# N% Q1 Z3 ^) R: j# i
- P Y! p' v& s( a; p- k" @" ^' Y& W' {#ifndef qdoc- l9 ?9 B& E; t: C' @5 i( U; u
8 {- l, O( X+ q. D2 J. Znamespace QtConcurrent {
& M4 `* G m$ b: y- v; W8 {; @$ e' |, K: v
template <typename T>5 h0 K! V. U; K5 D2 I1 s& b
struct SelectSpecialization
M% I/ ?5 {. E6 \' G. w1 o{
n8 w3 V# G u/ V/ y template <class Normal, class Void>3 \/ P( B5 G% b b5 ^0 m
struct Type { typedef Normal type; };
2 o# Q1 B+ m2 q. n% P$ ]+ }) B};& F) R% G4 D1 e- v
4 C3 |9 v' I$ }* o) u3 b" e; k
template <>0 `, U0 p# ]/ [8 S
struct SelectSpecialization<void>
. E5 ?7 E9 z8 H- ~4 O{
9 g5 [ d E# [9 V8 Z& k template <class Normal, class Void>. k, Y( @* Q, o. R T
struct Type { typedef Void type; };6 X! p- v* U" A3 [0 g6 t) x
};
3 Y) x7 N' R4 X1 b F8 h
5 B! o' F+ |# V6 P5 {- n" W3 Ctemplate <typename T>
0 ]. p' M- m7 j$ L( f' V- Wclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable# |4 M4 q) ]$ v9 L9 z2 \
{6 T2 V; }' a2 V! j) W, W6 m5 `
public:
T) \$ `! }9 I' R) H QFuture<T> start(); }) M: `( N5 y3 L9 g! L4 o
{
, |+ g5 R. Z4 r8 \6 T this->setRunnable(this);
/ J0 |; G/ W7 M3 I, ? this->reportStarted();2 {3 D- P8 M4 R4 E k" \# D
QFuture<T> future = this->future();: L" W1 z4 R2 L: n. n
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);) q4 M5 O% ^& n# F; t
return future;
L- H7 N+ m7 _1 d }1 }# U: r7 H3 o! J: b/ h
( a+ J6 u! d, ~ void run() {} y1 r$ I0 t) f6 n9 Q" L& N
virtual void runFunctor() = 0;
1 y/ C: y0 C/ y h3 m};2 `! C% C v$ A) }) @( d' ]0 u
# u" D. y9 @! \% U- e+ g
template <typename T> S. W6 m' V1 B) D% I v% @& b# E
class RunFunctionTask : public RunFunctionTaskBase<T>- X& \% m( t$ G. h: E
{
% R$ K$ o" n C/ {$ J. F# \7 T1 }public:
6 {) ~$ U5 q5 M6 Q void run()- a6 M8 Q) V$ H7 A: e# k
{
0 J; Q; P1 b. @9 d4 C if (this->isCanceled()) {
8 F1 j& X% Z, Z this->reportFinished();
( R$ Y, i$ }$ c8 h, w% d% S+ X6 z return;
! ]# w u% f v' f! w b }
8 u. k P4 v9 j0 f$ n this->runFunctor();
+ k. b, k9 }6 {' l' t this->reportResult(result);
d1 ]2 d& I) ^- Z4 s* } this->reportFinished();
# W5 _ h% h7 R3 n! E; S } K4 n3 `2 E6 l: l% `- g3 `
T result;# l1 _, G) }- l% n2 \
};! t0 r% K Q$ X8 F8 z
' e! P, z0 U0 D4 S3 s; xtemplate <>
8 u9 t a& j9 T" e* E1 Eclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
. d- }- y6 ]1 ?6 d{5 l3 b3 T5 g! e8 I& u
public:
# P5 Q1 D1 y+ w void run()
% M* ^+ U3 u& _7 f' l) L {, b" Z- S5 r+ T+ ^% q9 S; x
if (this->isCanceled()) {
* s- N' ?$ I, g& l- N this->reportFinished();
5 A+ [) d' J- `: L3 U! s( D return;) E7 d6 Y3 r5 X; S7 t- T0 Y0 d3 w
}& {2 T/ r1 t2 g, g3 k( K
this->runFunctor();
) Z6 R* `3 T. L. m4 d+ K s4 q this->reportFinished();
0 ^& O, Y& V5 r2 Z }5 {. J/ F- d& O$ j
};* g. C7 @2 C3 @7 V3 L6 Y
' Y) x3 G' e! p2 ?, F
} //namespace QtConcurrent. M6 e7 g. ~( u
9 r( R' P c. E4 r" O' m* \
#endif //qdoc
* B& L! B. l$ P. v7 B
! e; _1 [" x9 y) m/ `: W0 N; xQT_END_NAMESPACE
: h" k0 u- V: E2 fQT_END_HEADER! Y. e! o2 _5 @$ @* t c
, W1 [8 y) M' |8 _" ]5 C
#endif // QT_NO_CONCURRENT4 ^' I- e& ]+ f7 u3 l
5 W9 c Y: {/ d& @
#endif0 K4 a1 _/ z5 s" c3 S0 R# r
% ?6 u; _3 T" L5 A |
|