|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
0 c5 W' }- X/ S, s$ K/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'* y7 {- s/ ~ R
% z. d1 p: ]0 g* e
这个头文件内容如下:: X+ H, t9 K$ J8 z
#ifndef QTCONCURRENT_RUNBASE_H
6 R' N1 ~$ K0 [" k3 c( U: Y1 }#define QTCONCURRENT_RUNBASE_H
" G3 @5 M/ Y8 \4 t9 T1 z- Q; e) d7 K8 X
#include <QtCore/qglobal.h>0 D# i9 Z/ s9 x `6 b& c) t
* S6 f% k& a( X. E |
#ifndef QT_NO_CONCURRENT
2 I! O; g, j* P% g! c% p+ Z
: A; p% T I2 D2 l5 a/ K% J#include <QtCore/qfuture.h>
- @: |, u2 i, R2 w1 T$ `( }#include <QtCore/qrunnable.h>4 j. ~" f* J+ j# [( ^
#include <QtCore/qthreadpool.h>4 @0 A2 B4 k( W1 \; T
. V( K* Q4 U9 ?" q8 N7 U1 T' d
QT_BEGIN_HEADER
+ K: F) E9 d* l8 n9 Z. S* ]* AQT_BEGIN_NAMESPACE7 d" r* ^' V. l8 N
. H2 Q" }" Y$ T* Q! g
QT_MODULE(Core); ~. S5 m4 k+ ?, a W3 R" Y
' K4 l( P# P$ N+ P; H
#ifndef qdoc5 E0 e& M6 g; |2 {0 K: v! `
. o2 ^. Z7 Y$ d3 H Z" X% b
namespace QtConcurrent {
T( W9 D! U/ N, |) W6 |
6 z3 E3 p7 Y6 R b n+ }template <typename T>
1 f4 K+ ?& @" L' s$ J2 D: Kstruct SelectSpecialization7 z% g) K: b7 C2 t. V
{
& t) y8 i4 [2 D template <class Normal, class Void>) `2 {. K1 n j% H
struct Type { typedef Normal type; };2 |8 {1 b0 X# t2 ], b: ~& u6 x
};
' H& a/ \/ F& a+ X9 O& p/ f" z3 E
5 u) C p1 Z- n4 ? z0 x7 O; i9 K; ntemplate <>
/ Y- O8 f' H4 Z: {struct SelectSpecialization<void>
/ U' `. E p! p q+ @{; @7 u' q5 D g0 ]# R
template <class Normal, class Void>1 L+ f0 i' T* b2 i) ?
struct Type { typedef Void type; };
4 e( \6 A- i% {# {/ F) t) y};( D5 b$ O& y/ m+ ~) e- c
1 O- x# Y# }& qtemplate <typename T>
: z7 v) C2 X' gclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable. O+ V- y- R* b: \* Z- j) l
{
2 ] \3 x% S# npublic:
. S. X* g' [: H' c, p QFuture<T> start()2 ~; o7 R Z1 b7 \8 g3 ~
{
7 ~5 o" b. v9 b5 o: V9 h) S0 e this->setRunnable(this);
0 T* F7 M% Z& b- a: m7 _ this->reportStarted();( ~6 B8 R- t* J+ Z% z# \3 Y1 Z+ G
QFuture<T> future = this->future();
/ u) ]$ v/ \$ ` _ j QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
( u- a1 P% t# V. N6 o5 ]: y+ o return future;) z/ s7 g* z# X$ C% l5 f* {# t A
}: }# O8 Z2 J, x( D1 ]- `
/ m/ {1 Z% ?' j% @) j' l
void run() {}
. X3 h$ Z: n1 q! x! I, J virtual void runFunctor() = 0;8 y3 z/ e# z& o8 i7 J
};4 H1 C- @/ K2 t+ B2 a& b
2 K7 I) A' Z5 O4 h L( Utemplate <typename T>
5 D3 F$ S4 L( \class RunFunctionTask : public RunFunctionTaskBase<T>* R* ~3 z8 i8 a
{
* {1 d, M+ }) X+ Y+ R9 spublic:+ X9 L; V0 P# F) ~/ U
void run()! V* Q# P+ E7 |4 f- T
{
6 g2 |; H$ y; H; ~ if (this->isCanceled()) {$ ?* i4 t+ K4 I7 t( {$ w; j
this->reportFinished();
) K( r3 F q$ {8 } return;
) F" R1 k7 a0 x" i$ u }
: n+ U0 b# A4 _- G this->runFunctor();
, T3 o0 O* `9 P+ @4 ]4 c$ Y3 ^ this->reportResult(result);
+ B W7 o6 e3 y3 i7 W; j) F# P this->reportFinished();5 z; W- J; i$ A4 @3 x% Z& [; k
}
/ P" N5 E p% }$ w. U, ?: T6 r T result;, d1 h+ o; ~$ X5 V) ~7 G5 g
};1 H- j% g8 X2 Z( ~4 m, L, J6 o- b
5 w& c/ ^# Z( I) M; a
template <>* E" P! l [1 G' f9 ~( A
class RunFunctionTask<void> : public RunFunctionTaskBase<void>! @7 d' P |6 W+ I0 F- `
{
8 Y h; y8 v1 ?. t+ ?* wpublic:1 p- }- C0 Q* q( X9 z2 w* Y5 T; t
void run()! h: B/ v# o) {4 x; {
{
0 i" F, A) u+ i4 x: x4 t if (this->isCanceled()) {" ~" \4 m2 G9 ]0 d
this->reportFinished();6 o3 Q, ]7 Q5 ?1 s
return;
8 Q8 X1 Y J9 O' l# ^( T% k }! ^5 d q* g& c4 n; ?# I/ F
this->runFunctor();* t! b" m& [+ u4 N: h
this->reportFinished();
. x6 |/ x$ {" g: p6 D' g2 t }
7 q9 K* n2 y6 {};2 g+ a- M( B4 d: h, o m9 I
2 ]; O. B+ Z8 Q8 x, l
} //namespace QtConcurrent
. M) i7 V5 c+ F( K
3 N Q6 b1 P, W" {: G- p#endif //qdoc
# X/ B: C2 Z Z7 i$ W" B
* j1 I" \+ \7 h/ O7 a% `3 } a( c3 bQT_END_NAMESPACE
/ K) f2 N& S" U! KQT_END_HEADER' a6 f/ O! s; r8 X: j) |
& v2 s& }0 o3 `#endif // QT_NO_CONCURRENT- @) o! x* E! o$ I- I9 J
0 |+ k# E( X& N: G: }8 H+ l#endif2 |' U3 u7 ]5 l5 i) L/ x3 ^) `
1 C; p- v' g' m* ]4 U2 l% u
|
|